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
Что выведет код сверху?
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
Что выведет код сверху?
Anonymous Quiz
30%
0007
41%
00007
13%
47
16%
7
👩‍💻 Можно ли сузить уровень доступа или тип возвращаемого значения при переопределении метода?

При переопределении метода нельзя сузить модификатор доступа к методу (например, с public в MainClass до private в Class extends MainClass).

Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.

Можно сузить возвращаемое значение, если они совместимы.

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

Можно ли объявить метод абстрактным и статическим одновременно?

Ответ: Нет, в таком случае компилятор выдаст ошибку: "Illegal combination of modifiers: ‘abstract’ and ‘static’". Модификатор abstract говорит, что метод будет реализован в другом классе, а static наоборот указывает, что этот метод будет доступен по имени класса.

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