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
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
Что выведет код сверху?
Anonymous Quiz
11%
0
35%
-128
27%
128
28%
Ошибка компиляции
⌨️ Spring Initializr

Spring Initializr — это удобный способ создать проект на Spring Boot.

Для этого нужно перейти на сайт Spring Initializr, выбрать инструмент управления зависимостями (Maven или Gradle), язык (Java, Kotlin или Groovy), схему упаковки (Jar или War), версию, зависимости и загрузить проект. Это создаст для нас каркас проекта и сэкономит время на настройку, поэтому мы сможем сосредоточиться на добавлении бизнес-логики.

Даже когда мы используем мастер создания нового проекта в IDE (например, STS или Eclipse с плагином STS) для создания проекта со Spring Boot, под капотом используется Spring Initializr.

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