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
31%
CD
14%
CDE
28%
D
27%
abcde
👍1
📌 Задача с LeetCode (Unique Paths)

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

На сетке размером M x N в верхнем левом углу размещен робот. Роботу нужно оказаться в нижнем правом углу, однако перемещаться он может только вниз или вправо. Требуется найти количество уникальных путей, по которым робот доберется до финиша.

Для хранения количества уникальных путей к каждой ячейке используется двумерный массив dp;

В начале инициализируются значения в первом столбце и первой строке массива dp, так как он достижим только из одного направления;

Двумя вложенными циклами заполняется оставшаяся часть массива dp. Каждое значение dp[i][j] вычисляется как сумма количества уникальных путей до клетки сверху dp[i-1][j] и слева dp[i][j-1];

В конце возвращается значение dp[m-1][n-1], представляющее количество уникальных путей до последней клетки в сетке.

Эта задача на LeetCode — КЛИК

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

Что подразумевается под статическим блоком в Java?

Ответ: Статический блок используется для инициализации статических переменных класса. Он выполняется только один раз: при первой загрузке класса в память.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Сортировка вставками

Этот алгоритм разделяет оригинальный массив на сортированный и несортированный подмассивы.

Длина сортированной части равна 1 в начале и соответствует первому (левому) элементу в массиве. После этого остается итерировать массив и расширять отсортированную часть массива одним элементом с каждой новой итерацией.

После расширения новый элемент помещается на свое место в отсортированном подмассиве. Это происходит путём сдвига всех элементов вправо, пока не встретится элемент, который не нужно двигать.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Как получить наиболее распространенный элемент в списке?

Здесь используется Java Stream API для подсчета наиболее часто встречающегося элемента в списке.

Сначала создается поток чисел. Затем метод groupingBy группирует элементы по их значению (Function.identity()). После группировки вызывается метод counting() для подсчета количества элементов в каждой группе;

entrySet() преобразует полученную мапу в набор записей (ключ-значение);

Затем записи сортируются по значению в порядке убывания с помощью max(Map.Entry.comparingByValue());

Наконец, если есть максимальное значение, оно выводится с помощью метода ifPresent(System.out::println).

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Что выведет код сверху?
Anonymous Quiz
32%
s1 == s2 is: true
17%
false
44%
s1 == s2 is: false
6%
true
⌨️ Ключевое слово «this»

В Java ключевое слово this используется для ссылки на текущий объект внутри класса.

Это может быть использовано в следующих случаях:

Для ссылки на переменные экземпляра класса, чтобы различать их от локальных переменных или параметров метода, имеющих тот же самый идентификатор;

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

Для передачи ссылки на текущий объект другому методу или конструктору в качестве аргумента.

В примере мы используем this.name вместо name, чтобы указать, что мы обращаемся к переменной экземпляра класса Person, а не к параметру конструктора name.

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

Можно ли в конструкторе выполнить исключение (exception)?

Ответ: Да. Если при создании объекта возникает ошибка, которая не может быть обработана внутри конструктора, то можно выбросить исключение, чтобы сообщить об ошибке вызывающему коду.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
9%
5, 4
6%
2, 1, 0
68%
25, 16
16%
Ошибка компиляции
⌨️ Ключевое слово throws

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

В примере метод readFile() может выбросить два исключения: FileNotFoundException и IOException. Таким образом, если другой метод вызовет метод readFile() и не обработает эти исключения, то он должен будет объявить ключевое слово throws в своем объявлении метода.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой из примитивов синхронизации подойдёт для многопоточного доступа к переменной?
Anonymous Quiz
35%
ReentrantLock
21%
CountdownLatch
24%
Future
11%
Phaser
10%
CyclicBarrier
⌨️ Метод repeat()

Метод repeat() копирует содержимое строки заданное количество раз и возвращает результат в одной строке.

Синтаксис: String repeat(int count)

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

Поддерживается ли в Java множественное наследование?

Ответ: Java не поддерживает множественное наследование классов, т.е. наследование от нескольких классов одновременно. Однако, можно использовать интерфейсы для реализации множественного наследования.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Собственное исключение при делении на ноль

DivideByZeroException — собственное исключение, которое наследуется от класса Exception. В блоке try происходит проверка: если делитель равен нулю, то выбрасывается это исключение с соответствующим сообщением. В блоке catch перехватывается исключение и выводится сообщение об ошибке.

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