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
26%
Ha169
56%
HaHa
7%
Ha
11%
Ошибка компиляции
Вопрос с собеседования

Для чего в JUnit используется аннотация @Ignore?

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

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

LinkedHashSet представляет собой структуру данных, которая хранит элементы в порядке их добавления, а также не допускает дублирования элементов, как и HashSet.

Однако, в отличие от HashSet, LinkedHashSet сохраняет порядок добавления элементов, что может быть полезно в некоторых случаях.

Как видно из примера, элементы были добавлены в множество в порядке их добавления, а дубликат элемента "Java" не был добавлен в множество.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
1%
8
28%
24
4%
33
67%
32
📌 Решение задачи c собеседования в Google

numIslands() — метод для подсчета количества островов на карте, представленной в виде двумерного массива символов.

Внутри циклов for проверяется, является ли текущий элемент равным символу '1'. Если это так, то увеличивается счетчик count и вызывается метод clearRestOfLand, который помечает все смежные элементы с символом '1' как '0', чтобы очистить остров отметок.

clearRestOfLand принимает параметры grid, i и j, которые представляют текущие координаты элемента. Сначала проверяется, находятся ли координаты внутри границ массива и является ли текущий элемент равным '0'. Если это так, то метод завершает свою работу.

Если текущий элемент равен символу '1', то он помечается как '0' и рекурсивно вызываются методы clearRestOfLand для соседних элементов вверх, вниз, вправо и влево от текущего элемента.

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

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚡️ Наш чат для Java-разработчиков

Здесь вы можете помогать друг другу в изучении языка, задавать вопросы и общаться в комфортной обстановке:

https://news.1rj.ru/str/+2uXOfZcyhYI1ZmQy
Please open Telegram to view this post
VIEW IN 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