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
3%
private
2%
protected
91%
public
4%
default
⌨️ Сигнатура метода

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

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

В целочисленном массиве переместите все 0 в конец, сохраняя относительный порядок ненулевых элементов (Ответ на картинке).

Например:

Массив на вход: [0, 1, 0, 3, 12]
Вывод: [1, 3, 12, 0, 0]

Массив на вход: [0]
Вывод: [0]

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

Что такое Stream в Java?

Ответ: Java Stream — способ взаимодействия с потоком данных, который позволяет более удобно и компактно обрабатывать большие данные, а также распараллеливать обработку данных между определенным количеством потоков, что может дать прирост в производительности в использующем функционале.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Ключевое слово final

Ключевое слово final в Java используется для обозначения переменных, методов и классов с неизменяемым значением или состоянием.

Переменная, объявленная как final, не может быть изменена после ее инициализации. Метод, объявленный как final, не может быть переопределен в подклассах. Класс, объявленный как final, не может быть расширен другими классами.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Отличия String, StringBuilder, StringBuffer

String — иммутабельный байтовый массив;
StringBuilder — helper-класс для построения строк, не предоставляет гарантий синхронизации;
StringBuffer — то же, что и StringBuilder, с synchronized методами.

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

JUnit — это фреймворк для языка программирования Java, предназначенный для автоматического тестирования программ.

Его основное назначение — unit-тестирование, то есть такое, когда по отдельности проверяется функциональность каждого компонента программы. В результате использования JUnit можно получить более стабильный и надежный программный код.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Узнаем точную дату с помощью Java

Через метод LocalDate.now() мы получаем текущую дату, затем вычитаем из нее заданное количество дней методом minusDays(), получая дату в прошлом. Затем создаем объект класса DateTimeFormatter, который позволяет задать формат выводимой даты ( "dd.MM.yyyy"). И наконец, форматируем дату методом format() и выводим результат на экран.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Какой класс лучше всего использовать для реализации кеша или для хранения метаданных об объектах?
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