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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

Каково максимальное число значений hashCode()?

Ответ: Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Метод ordinal() в Enum

ordinal() является частью класса Enum. Класс Enum используется для создания типов данных, представляющих ограниченное множество значений, таких как перечисления (enumerations).

Метод ordinal() возвращает порядковый номер (индекс) конкретного элемента перечисления в объявленном порядке.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
13%
0
11%
1
14%
10
18%
null
44%
IndexOutOfBoundsException
📌 Задача с LeetCode (Maximum Product Subarray)

На вход подается целочисленный массив. Необходимо вычислить максимальное произведение, которое встречается в подмассиве исходного массива ([2,3,-2,4] — ответ 6).

Инициализируются переменные max, min и ans значением первого элемента массива;

В цикле for проходим по остальным элементам массива (начиная со второго).

Если текущий элемент отрицательный, то меняем местами значения переменных max и min.

Обновляем значения переменных max и min, сравнивая текущий элемент с произведением предыдущего значения max/min на текущий элемент.

Обновляем значение переменной ans, сравнивая текущее значение max с текущим значением ans.

По завершении цикла возвращаем значение переменной ans, которое и будет являться максимальным произведением подмассива.

Описание и условие задачи на YouTubeКЛИК
Эта задача на LeetCode — КЛИК

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
18%
1 2 3 4 5 6 7 8 9 10 11
37%
11
28%
1 1 1 1
18%
Ошибка компиляции
⌨️ Сортировка слиянием (Merge Sort)

Сортировка слиянием подразумевает принцип «разделяй и властвуй». В чем идея и ее смысл?

Алгоритм разбивает список на две части, каждую из них он разбивает ещё на две и так далее, пока не останутся единичные элементы. Массив из одного элемента считается упорядоченным. Соседние элементы сравниваются и соединяются вместе. Так происходит до тех пор, пока все элементы не будут отсортированы.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Что выведет код сверху?
Anonymous Quiz
14%
64 0
22%
0 64
46%
256 0
17%
0 256
📌 Задача с LeetCode (Jump Game)

Дан массив чисел, изначально мы находимся в начале массива, а каждый элемент в нём представляет максимальную длину прыжка в этой позиции. Нужно вернуть true, если мы сможем дойти до конца массива, и вернуть false — если нет.

Переменная reachable хранит индекс самой правой позиции, до которой можно добраться из текущего положения;

В цикле проверяем, если текущий индекс i больше значения reachable, то это означает, что мы не можем достичь текущей позиции i. В таком случае возвращаем false;

Обновляем значение reachable, присваивая ему максимум между текущим значением reachable и суммой текущего индекса i и значения элемента массива nums[i];

По завершении цикла возвращаем true.

Описание и условие задачи на YouTubeКЛИК
Эта задача на LeetCode — КЛИК

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
7%
try catch
62%
try finally
19%
try catch finally
13%
finally
⌨️ Метод Collections.shuffle

Метод shuffle() из класса Collections используется для перемешивания элементов коллекции в случайном порядке.

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

shuffle() не гарантирует уникальность создаваемых перестановок при многократном вызове. Работает за линейное время O(n).

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒 На канале произошёл небольшой ребрендинг

Мы работаем над тем, чтобы материалы на канале были полезны каждому разработчику. Именно поэтому формат постов изменился в лучшую сторону, а качество подаваемого материала растёт с каждым днём.

🔔 Предлагаю включить уведомления, если ты ещё не сделал этого, закрепить канал и изучать Java вместе с нами!
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Почему нельзя объявить метод интерфейса с модификатором final?

Ответ: В случае интерфейсов указание модификатора final бессмысленно, т.к. все методы интерфейсов неявно объявляются как абстрактные, т.е. их невозможно выполнить, не реализовав где-то еще, а этого нельзя будет сделать, если у метода идентификатор final.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Рекурсия (Recursion)

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

Основные элементы рекурсии в Java:

Базовый случай — это условие, при котором функция прекращает вызывать саму себя и возвращает результат;

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

Прогресс — каждый рекурсивный вызов должен быть ближе к базовому случаю, чтобы избежать бесконечной рекурсии.

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

Что такое «потокобезопасность»?

Ответ: Свойство объекта или кода, гарантирующее правильное поведение кода при его исполнении или использовании несколькими потоками. Например, потокобезопасный счётчик не пропустит ни один счёт, даже если один и тот же экземпляр этого счётчика будет использоваться несколькими потоками.

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