Библиотека собеса по Java | вопросы с собеседований
6.32K subscribers
396 photos
8 videos
437 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Как работают лямбды?

Лямбда — это краткая форма записи анонимного класса, реализующего функциональный интерфейс (т.е. интерфейс с единственным абстрактным методом, например Runnable или Function).

При компиляции лямбда не создает отдельный класс, как раньше анонимные классы. Вместо этого компилятор использует механизм invokedynamic, добавленный в Java 8, чтобы создать ссылку на реализацию метода — функциональный объект формируется динамически во время выполнения.

Кратко:

Лямбды — это ссылки на поведение, а не объекты. Они компилируются через invokedynamic и создают реализацию функционального интерфейса во время выполнения.

🐸 Библиотека собеса по Java

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥1
Как между собой связаны Iterable, Iterator и цикл for-each?

Iterable — это интерфейс с единственным методом iterator(), который возвращает объект Iterator. Любой класс, реализующий Iterable, может использоваться в цикле for-each.

Iterator — это интерфейс для последовательного обхода элементов коллекции. Содержит методы hasNext(), next() и remove().

Цикл for-each — это синтаксический сахар. Компилятор автоматически преобразует его в вызов iterator() и работу с Iterator.

🐸 Библиотека собеса по Java

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥5👏1
Что такое GraphQL?

GraphQL — это язык запросов для API и среда выполнения этих запросов, разработанный Facebook.

🔹 Ключевые особенности:

В отличие от REST, клиент запрашивает ровно те данные, которые ему нужны, в одном запросе. Это решает проблемы over-fetching (получение лишних данных) и under-fetching (когда нужно делать несколько запросов).

✔️ Плюсы

Гибкость на клиенте
Строгая типизация через схему
Один эндпоинт
Хорошая документация "из коробки"

Минусы

Сложность кеширования
Может быть оверхед для простых API
Требует дополнительных библиотек на бэкенде

🐸 Библиотека собеса по Java

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥21
Что означает ключевое слово native?

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

Когда мы объявляем метод как native, мы указываем только его сигнатуру без тела метода. Реальная реализация находится в нативной библиотеке (.dll, .so), которая подключается через JNI (Java Native Interface).

Нативные методы используются для:

Работы с системными ресурсами и API операционной системы
Повышения производительности критичных участков кода
Использования существующих библиотек на C/C++

🐸 Библиотека собеса по Java

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
Что такое enum?

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

Кроме того, enum может содержать:


поля и методы, чтобы хранить доп. данные (например, код статуса);
конструктор (по умолчанию private);
переопределение методов (например, toString() или abstract-методы для каждого элемента).

🐸 Библиотека собеса по Java

#core
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71🔥1