Java Developer – Telegram
Java Developer
15.7K subscribers
1.87K 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
37%
1 2 3 4
25%
1234
3%
0
35%
Ошибка
📌 Решение задачи c собеседования в Apple и Google

Описание, условие и объяснение алгоритма решения задачи на YouTubeКЛИК

twoSum() — метод, который находит два числа в массиве, сумма которых равна заданному числу «k».

Цикл for перебирает все элементы массива. Для каждого элемента определяем число, которое необходимо найти, чтобы получить сумму k. Для этого из k вычитается текущий элемент nums[i].

Затем определяется два указателя — left и right. left указывает на следующий элемент после текущего, а right — на последний элемент массива.

Внутри цикла while выполняется бинарный поиск:

Каждая итерация считает средний индекс mid между left и right;

Если nums[mid] равно искомому числу (numberToFind), то возвращается массив с текущим элементом nums[i] и число nums[mid];

Если numberToFind < nums[mid], то right = mid - 1, чтобы продолжить поиск левее;

Если numberToFind > nums[mid], то left = mid + 1, чтобы продолжить поиск правее;

Если внутри цикла while не найдено равное число, то переходим к следующему элементу массива и повторяем процесс поиска. Если после перебора всех элементов не найдена пара чисел, возвращается пустой массив new int[0].

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
11%
12345
78%
54321
11%
Ошибка
👩‍💻 Классы StringBuilder и StringBuffer

StringBuffer и StringBuilder используются, когда возникает необходимость сделать много изменений в строке символов.

В отличие от строк, объекты типа StringBuffer и StringBuilder могут быть изменены снова и снова, оставляя после себя множество новых неиспользуемых объектов.

Основное различие между StringBuffer и StringBuilder в том, что методы StringBuilder не являются безопасными для потоков (несинхронизированные).

Рекомендуется использовать StringBuilder всякий раз, когда это возможно, потому что он быстрее, чем StringBuffer. Однако, если необходима безопасность потоков, наилучшим вариантом являются объекты StringBuffer.

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

Какое худшее время работы метода contains() для элемента, который есть в LinkedList?

Ответ: O(N). Время поиска элемента линейно пропорционально количеству элементов в списке.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
📌 Telegram бот на Java за 60 секунд — разбор

Создание и описание бота показано здесьКЛИК
Ссылка на полный, закомментированный проект — КЛИК

Сервисы, которые использовались в видео:

BotFather

OpenWeatherMap API

Библиотеки:

<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>6.1.0</version>
</dependency>

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
</dependency>

Бот написан за 20 минут, ваша задача — разобраться в коде и модернизировать его!

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Метод Collections.shuffle

Метод shuffle() случайным образом перемешивает все элементы переданного списка.

В примере на картинке создаётся список из упорядоченных элементов, затем срабатывает метод shuffle(), элементы перемешиваются в случайном порядке и выводятся на экран при помощи цикла for.

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

Каково максимальное число значений hashCode()?

Ответ: Число значений следует из сигнатуры int hashCode() и равно диапазону типа int — 2^32.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Цикл foreach

JDK 1.5 представила новый цикл for, известный как цикл foreach или расширенный цикл for, который позволяет последовательно пройти весь массив без использования индекса переменной.

Код на картинке выводит в консоль все элементы массива array.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
22%
true
9%
false
58%
Compile error
11%
Runtime error
👩‍💻 Из каких частей состоит JDBC?

JDBC состоит из двух частей:

JDBC API — содержит набор классов и интерфейсов, определяющих доступ к базам данных. Эти классы и методы объявлены в двух пакетах — java.sql и javax.sql;

JDBC-драйвер — компонент, специфичный для каждой базы данных. JDBC превращает вызовы уровня API в «родные» команды того или иного сервера баз данных.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
35%
15
42%
123
22%
Ошибка компиляции
👩‍💻 Конструкторы

Конструкторы — это методы класса в Java, которые вызываются при создании нового объекта этого класса. Их основная задача — инициализировать поля нового объекта.

Существует два типа конструкторов в Java:

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

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

Конструктор на картинке принимает один параметр x и инициализирует поле класса значением этого параметра. Ключевое слово this используется для ссылки на текущий объект класса.

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

Как между собой связаны Iterable и Iterator?

Ответ: Интерфейс Iterable имеет только один метод - iterator(), который возвращает Iterator.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Побитовые операции

Побитовые операции в Java позволяют работать с двоичным представлением чисел на уровне отдельных битов. В Java доступны следующие побитовые операции:

& (побитовое AND) — возвращает 1 в каждом разряде двоичного представления, если оба операнда содержат 1, в противном случае — 0.

| (побитовое OR) — возвращает 1 в каждом разряде двоичного представления, если хотя бы один операнд содержит 1, в противном случае — 0.

^ (побитовое исключающее OR) — возвращает 1 в каждом разряде двоичного представления, если только один из операндов содержит 1, в противном случае — 0.

~ (побитовое NOT) — инвертирует каждый бит операнда. 1 становится 0 и наоборот.

<< (сдвиг влево) — сдвигает биты левого операнда на указанное количество разрядов влево. Недостающие биты заполняются нулями.

>> (сдвиг вправо) — сдвигает биты левого операнда на указанное количество разрядов вправо. Недостающие биты заполняются нулями. Оставшиеся биты соответствуют знаку операнда.

>>> (беззнаковый сдвиг вправо) — сдвигает биты левого операнда на указанное количество разрядов вправо. Недостающие биты заполняются.

➡️ Java Developer
Please open Telegram to view this post
VIEW IN TELEGRAM
Какое ключевое слово используется в Java для создания нового объекта?
Anonymous Quiz
3%
create
89%
new
1%
instance
7%
object
👩‍💻 Класс POJO

Класс POJO — это простой Java-класс, который не зависит от каких-либо фреймворков или библиотек и следует определенным правилам. POJO означает "Plain Old Java Object" (Простой старый Java-объект) и используется для передачи данных между различными слоями приложения.

Правила для POJO класса включают в себя:

Класс должен быть public и иметь пустой конструктор;

Переменные экземпляра класса должны быть private и иметь геттеры и сеттеры для доступа к ним;

Должны быть реализованы методы toString(), equals() и hashCode();

Класс не должен реализовывать никаких интерфейсов или наследоваться от других классов, которые не являются также POJO.

На картинке пример POJO класса в Java для представления пользователя.

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