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
Вопрос с собеседования

Можно ли объявить несколько main-методов в коде Java-приложения?

Ответ: Метод main() — точка входа в программу. В приложении может быть несколько таких методов. Если метод отсутствует, то компиляция возможна, но при запуске будет получена ошибка Error: Main method not found.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Задача с LeetCode (Minimum Path Sum)

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

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

Для решения воспользуемся динамическим программированием:

Первые два цикла for обновляют значения в первой строке и первом столбце, добавляя значения ячеек сверху и слева соответственно.

Последний цикл for обновляет остальные значения внутри массива grid, выбирая минимальное значение из верхней и левой ячейки и добавляя его к текущей ячейке.

Конечный результат возвращается из последней ячейки массива grid.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
11%
ABC
30%
BCD
12%
ABCD
47%
Ошибка компиляции
😁1
⌨️ Обработка нескольких исключений в одном блоке catch

В этом примере мы пытаемся преобразовать строку, которая не является целым числом, в переменную типа int. Затем мы пытаемся вызвать метод length() для переменной типа String, которой было присвоено значение null. Оба этих действия могут привести к выбросу различных исключений, таких как NumberFormatException или NullPointerException.

Мы перехватываем оба исключения в блоке catch с помощью оператора | (или), который позволяет указывать несколько типов исключений через запятую. Затем мы выводим сообщение об ошибке.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Что выведет код сверху?
Anonymous Quiz
10%
1
33%
5
9%
15
48%
Ошибка компиляции
📌 Задача с LeetCode (Integer to English Words)

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

Требуется преобразовать неотрицательное целое число num в его представление английскими словами (50 — "Fifty").

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

Для чисел до 20 вернём слово из массива "ones".

Для чисел до 100 верните слово из массива "tens", плюс рекурсивный вызов с остатком от деления на 10.

Для чисел до 1000 верните слово из массива "ones", разделенное на 100, слово "Сто" и рекурсивный вызов с остатком от деления на 100.

Для больших чисел выполним цикл по массиву "thousands" и рекурсивно вызовем функцию с частным от деления на 1000 и остатком от деления на 1000.

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

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

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

Что обозначает ключевое слово transient?

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Сортировка выбором (Selection Sort)

Идея сортировки проста — каждый проход выбирать самый минимальный элемент и смещать его в начало. При этом каждый новый проход начинать сдвигаясь вправо, то есть первый проход — с первого элемента, второй проход — со второго.

Данная сортировка неустойчива, т.к. одинаковые элементы (с точки зрения той характеристики, по которой мы сортируем элементы) могут изменить своё положение.

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

К каким конструкциям Java применим модификатор static?

Ответ: полям, методам, вложенным классам, блокам инициализации, членам секции import.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
9%
200
57%
100
19%
0
14%
Ошибка компиляции
⌨️ Casting

Casting используется для преобразования переменной одного типа данных в другой. Существуют два типа преобразования: расширяющее (Widening Casting) и сужающее
(Narrowing Casting).

Расширяющее преобразование (Widening Casting): преобразования данных меньшего типа в больший тип называется расширяющим преобразованием. Это преобразование выполняется автоматически.

Сужающее преобразование (Narrowing Casting): Преобразование данных большего типа в меньший тип называется сужающим преобразованием. Это преобразование должно выполняться вручную.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Задача с LeetCode (Maximum 69 Number)

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

Дано положительное целое число, состоящее только из цифр 6 и 9. Требуется вернуть максимальное число, которое можно получить, изменив не более одной цифры (6 становится 9 и 9 становится 6).

Сначала преобразуем num в строку с помощью метода Integer.toString(num). Это позволит нам работать с отдельными символами числа.

Затем создадим массив символов charArray, в котором каждый элемент представляет собой символ из строки.

Далее используем цикл for, чтобы перебрать все символы в массиве charArray.

Внутри цикла проверяем, является ли текущий символ равным '6'. Если это так, то мы заменяем его на '9' и преобразуем массив символов обратно в число с помощью методов String.valueOf(charArray) и Integer.parseInt(). Затем мы возвращаем это число.

Если мы не находим символ '6' в числе, то возвращаем исходное число num.

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

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

Могут ли нестатические методы перегрузить статические?

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Класс StringJoiner

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Перегрузка метода

Перегрузка метода (method overloading) — механизм, который позволяет определить несколько методов с одним и тем же именем в одном классе, но с разными параметрами.

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

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