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

Почему в некоторых интерфейсах вообще не определяют методов?

Ответ: Это так называемые маркерные интерфейсы. Они просто указывают, что класс относится к определенному типу. Примером может послужить интерфейс Clonable, который указывает на то, что класс поддерживает механизм клонирования.

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

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

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

Сначала создается HashMap, в котором будут храниться символы из журнала и их количество.

Затем происходит перебор каждого символа в строке журнала. Если символ отсутствует в словаре, он добавляется со значением 1. Если символ уже присутствует, его количество увеличивается на 1.

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

Если все символы в записке с выкупом были успешно проверены, возвращается true.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
14%
0
48%
10
2%
-1
37%
Ошибка компиляции
📌 Задача с LeetCode (Plus One)

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

plusOne() — метод, который увеличивает целое число, представленное в виде массива, на единицу.

Например:
Число 123 в виде массива [1, 2, 3]. Увеличим на единицу — [1, 2, 4]
Число 9 в виде массива [9]. Увеличим на единицу — [1, 0]

Начинаем перебор массива digits с конца i = digits.length - 1 и идем в обратном порядке;

Если текущая цифра digits[i] равна 9, то меняем ее на 0.

Если текущая цифра digits[i] не равна 9, то увеличиваем ее на 1 и возвращаем массив digits.

Если весь массив digits состоит из цифры 9 (то есть не сработал return внутри цикла), то создаем новый массив digits размером на 1 больше и устанавливаем первую цифру равной 1.

Возвращаем полученный массив digits.

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

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

Что такое Reflection?

Ответ: Рефлексия (Reflection) — это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Какая из следующих баз данных не поддерживается с помощью jdbcTemplate?
Anonymous Quiz
10%
MySQL
13%
PostgreSQL
59%
NoSQL
18%
Oracle
📌 Задача с LeetCode (Length of Last Word)

Метод lengthOfLastWord() принимает в качестве аргумента строку s;

Строка s преобразуется с помощью метода trim(), который удаляет пробелы в начале и конце строки. Это делается для того, чтобы обработать случаи, когда в конце строки присутствуют пробелы, не являющиеся частью последнего слова;

Переменная counter с начальным значением 0 будет использоваться для подсчета длины последнего слова;

Внутри цикла for проверяется, является ли текущий символ пробелом:

— Если символ не является пробелом, значит это символ последнего слова, поэтому counter увеличивается на 1.

— Если символ является пробелом, значит достигнут конец последнего слова, и цикл прерывается с помощью break.

Возвращается значение переменной counter.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Фреймворк Hibernate предоставляет средства оболочки для доступа к данным. Какой тип оболочки предоставляется данным фреймворком?
Anonymous Quiz
10%
DAO
38%
JDBC
28%
JPA
23%
ORM
⌨️ Восходящее и нисходящее преобразование

Восходящее преобразование (upcasting) происходит, когда объект или значение преобразуется в тип, который находится выше в иерархии наследования.

Нисходящее преобразование (downcasting) происходит, когда объект или значение преобразуется в тип, который находится ниже в иерархии наследования. Для выполнения нисходящего преобразования необходимо явно привести типы.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Различные модули Spring Framework

Spring Context — для внедрения зависимостей;

Spring AOP — для аспектно-ориентированного программирования;

Spring DAO — для операций с базой данных с использованием шаблона DAO;

Spring JDBC — для поддержки JDBC и DataSource;

Spring ORM — для поддержки инструментов ORM, таких как Hibernate;

Spring Web Module — для создания веб-приложений;

Spring MVC — реализация Model-View-Controller для создания веб-приложений, веб-сервисов и т. д.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
10%
11, 13, 15
10%
14
27%
10, 12, 14
18%
12, 14
35%
10, 14
⌨️ Как не допустить сериализацию?

Чтобы не допустить автоматическую сериализацию можно переопределить private методы для создания исключительной ситуации NotSerializableException.

Любая попытка записать или прочитать этот объект теперь приведет к возникновению исключительной ситуации.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
42%
9
3%
10
32%
910
12%
910!
11%
Ошибка компиляции
⌨️ Композиция

Композиция — это строгое отношение, где объект A является частью объекта B и не может принадлежать другому объекту того же типа.

Самый простой пример — двигатель автомобиля. Двигатель является частью автомобиля, но не может быть частью другого автомобиля.

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

Можно ли создать Enum без экземпляров объектов?

Ответ: Да, можно создать перечисление (enum) без экземпляров объектов. Для этого нужно создать пустой список аргументов в определении перечисления, но у этого перечисления всё равно будет один экземпляр, INSTANCE. Этот подход используется часто при реализации паттерна Singleton.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
⌨️ Лямбда-выражения

Лямбда-выражения позволяют создавать анонимные функции, которые можно передавать как параметры или хранить в переменных. Лямбда-выражения облегчают написание чистого, компактного и читаемого кода без необходимости создания отдельных классов.

В данном примере мы создаем список строк и сортируем его с использованием лямбда-выражения (a, b) -> a.compareTo(b). Это выражение задает функцию сравнения двух строк, используемую для сортировки. Затем мы выводим отсортированные элементы списка с помощью метода forEach и лямбда-выражения name -> System.out.println(name).

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