Java Developer – Telegram
Java Developer
15.7K subscribers
1.86K photos
141 videos
2 files
2.09K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Какой класс лучше всего использовать для реализации кеша или для хранения метаданных об объектах?
Anonymous Quiz
66%
HashMap
13%
LinkedHashMap
9%
IdentityHashMap
12%
WeakHashMap
👩‍💻 PostgreSQL

PostgreSQL — это реляционная система управления базами данных (СУБД) с открытым исходным кодом, которая поддерживает SQL и предоставляет расширенные возможности, такие как поддержка JSON, XML и геоданных, а также многопоточность и транзакционность для обеспечения безопасности данных.

PostgreSQL используется для хранения и управления большим объемом данных в различных приложениях, включая веб-приложения, мобильные приложения, аналитические системы и многое другое.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Как принудительно запустить поток?

Ответ: никак, в Java не существует абсолютно никакого способа принудительного запуска потока. Это контролируется JVM и Java не предоставляет никакого API для управления этим процессом.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Логические операции и операторы в Java

& : Логическое AND (И);
&& : Сокращённое AND;
| : Логическое OR (ИЛИ);
|| : Сокращённое OR;
^ : Логическое XOR (исключающее OR (ИЛИ));
! : Логическое унарное NOT (НЕ);
&= : AND с присваиванием;
|= : OR с присваиванием;
^= : XOR с присваиванием;
== : Равно;
!= : Не равно;
?: : Тернарный (троичный) условный оператор.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Параллельная редукция

Параллельная редукция в Java — это процесс сокращения (редукции) коллекции элементов с использованием параллельных вычислений. В Java для этого можно использовать параллельные потоки и функциональные интерфейсы, такие как reduce(), collect() и stream().

Обратите внимание, что использование параллельной редукции имеет смысл только при выполнении тяжелых вычислений или обработки больших коллекций данных. В других случаях, когда нагрузка невелика, последовательная редукция может быть более эффективной.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 «Монитор» в Java

Монитор, мьютекс (mutex) — это средство обеспечения контроля за доступом к ресурсу. У монитора может быть максимум один владелец в каждый текущий момент времени. Следовательно, если кто-то использует ресурс и захватил монитор для обеспечения единоличного доступа, то другой, желающий использовать тот же ресурс, должен подождать освобождения монитора, захватить его и только потом начать использовать ресурс.

Удобно представлять монитор как id захватившего его объекта. Если этот id равен 0 — ресурс свободен. Если не 0 — ресурс занят. Можно встать в очередь и ждать его освобождения.

В Java у каждого экземпляра объекта есть монитор, который контролируется непосредственно JVM. Используется он так: любой нестатический synchronized-метод при своем вызове прежде всего пытается захватить монитор того объекта, у которого он вызван (на который он может сослаться как на this). Если это удалось — метод исполняется. Если нет — поток останавливается и ждет, пока монитор будет отпущен.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какие из методов отсутствуют в String?
Anonymous Quiz
18%
isEmpty()
6%
length()
32%
capacity()
44%
codePointBefore()
👩‍💻 Возведение в степень методом Math.pow()

Метод Math.pow() возводит значение первого аргумента в степень второго аргумента, позволяя осуществить быстрое возведение в степень любых значений. Следует отметить, что для вывода на экран целого значения используется "%.0f", так как метод Math.pow() возвращает double значение.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Структура веб-проекта

src/main/java — Исходники приложения/библиотеки;

src/main/resources — Ресурсные файлы приложения/библиотеки;

src/main/filters — Файлы сервлетных фильтров;

src/main/webapp — Исходники веб-приложения;

src/test/java — Исходники тестов;

src/test/resources — Ресурсные файлы тестов;

src/test/filters — Тесты сервлетных фильтров;

src/it — Интеграционные тесты;

src/assembly — Описание сборки;

src/site — Сайт;

LICENSE.txt — Лицензия проекта;

NOTICE.txt — Замечания и определения библиотек зависимостей;

README.txt — Описание проекта;

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Что такое Instance Variable?

Ответ: Instance Variable — переменная, которая определена внутри класса, и она существует вплоть до того момента, пока существует объект.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Docker

Docker — это программное обеспечение, позволяющее запускать приложения в изолированных контейнерах. Каждый контейнер содержит все необходимые компоненты приложения и может быть запущен на любой операционной системе, где установлен Docker. Docker упрощает развертывание приложений и избавляет от проблем совместимости с различными ОС.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Извлекаем имя из адреса электронной почты

Метод extractNameFromEmail принимает строку с адресом электронной почты и возвращает подстроку до символа "@" (если символ "@" присутствует в строке) в качестве имени.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Какие типы ключевых слов используются в обработке исключений Java?

Ответ: try, catch, finally, throw, throws.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Маркерный интерфейc и примеры таких интерфейсов в Java

Маркерный интерфейс — это интерфейс без каких-либо методов. Обычно он реализуется классом или расширяется другим интерфейсом для обозначения определенного свойства. Наиболее широко известными маркерами в стандартной библиотеке Java являются следующие:

Serializable — используется для явного указания того, что этот класс может быть сериализован;
Cloneable — позволяет клонировать объекты с помощью метода clone (без интерфейса Cloneable этот метод выдает исключение CloneNotSupportedException);
Remote — используется в RMI для указания интерфейса, методы которого можно вызывать удаленно.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Hibernate

Hibernate — это ORM фреймворк для Java с открытым исходным кодом. Эта технология является крайне мощной и имеет высокие показатели производительности.

Hibernate создаёт связь между таблицами в базе данных и Java-классами и наоборот. Это избавляет разработчиков от огромного количества лишней, рутинной работы, в которой крайне легко допустить ошибку и крайне трудно потом её найти.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой сборщик мусора самый медленный?
Anonymous Quiz
15%
Parallel
23%
G1
42%
Serial
20%
CMS
👩‍💻 Механизм try-with-resources

try-with-resources — конструкция, которая появилась в Java 7. Она позволяет использовать блок try-catch не заботясь о закрытии ресурсов, используемых в данном сегменте кода. Ресурсы объявляются в скобках сразу после try, а компилятор уже сам неявно создаёт секцию finally, в которой и происходит освобождение занятых в блоке ресурсов. Под ресурсами подразумеваются сущности, реализующие интерфейс java.lang.Autocloseable.

Стоит заметить, что блоки catch и явный finally выполняются уже после того, как закрываются ресурсы в неявном finally.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Какие два класса не наследуются от Object?

Ответ: таких классов нет: все классы прямо или через предков наследуются от класса Object.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
В каком классе или интерфейсе реализованы (объявлены) методы wait(), notify(), notifyAll()?
Anonymous Quiz
19%
Runnable
35%
Thread
6%
Callable
40%
Object
1
👩‍💻 Метод Map.of()

Map.of() — это метод, представленный в Java 9, позволяющий разработчикам создавать неизменяемый Map, содержащий до десяти пар ключ-значение. Он обеспечивает удобный и лаконичный способ создания Map без необходимости написания большого количества кода.

Map.of() является улучшением по сравнению с предыдущим способом создания небольших Map с использованием конструктора класса HashMap, который может быть довольно громоздким и многословным.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем версию Java

В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");

Этот код вернет текущую версию Java, установленную на компьютере.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM