Java задачи с собеседований
6.22K subscribers
654 photos
7 videos
19 files
260 links
Задачи, тесты и теоретические вопросы по JAVA.

Репозиторий: https://github.com/proghub-official/java-interview
Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
加入频道
➡️ Maven

Maven — один из трёх самых популярных инструментов для сборки проектов на Java. Он отвечает за компиляцию, создание jar-файлов (Java-архивов), создание дистрибутива программы, генерацию документации.

🗣️ Maven — просто отличная штука, хоть поначалу и не очень понятная. Если вы никогда не использовали Maven раньше, вы многое потеряли.

🔗 Ссылочка на доку (https://maven.apache.org/guides/index.html)

👩‍💻

@javaquiz
👍1
⚙️ Параллелизм в Java 8

В Java 8 было внесено несколько крупных изменений, улучшивших API параллелизма, включая метод newWorkStealingPool().

🗣️ Этот метод создает пул потоков, использующий алгоритм воровства работы, который может использовать доступные процессоры на желаемом уровне параллелизма.

➡️ Другие улучшения в API параллелизма включают:

• Новые методы для ConcurrentHashMap: forEach(), forEachEntry(), forEachValue(), reduce(), merge() и search().
• CompletableFuture может явно устанавливать свое значение и статус.

👩‍💻

@javaquiz
👍1🔥1
➡️ Отправка email с использованием JavaMail API

Метод postMail отправляет письмо на заданные адреса. Он принимает список получателей, тему, сообщение и адрес отправителя.

⚙️ Настраивается соединение с SMTP-сервером, создается сессия и сообщение. Устанавливаются адрес отправителя и получателей, заголовки, тема и текст сообщения.

✔️ Затем сообщение отправляется с помощью метода Transport.send.

👩‍💻

@javaquiz
👍3
➡️ Создаем PDF-файл в Java

Этот код создает PDF-файл с использованием библиотеки iText в Java.

• Внутри метода main создается новый PDF-документ, добавляются два параграфа: один с текстом "Hello Kiran" и второй с текущей датой и временем.

• Затем документ сохраняется в файл C:\Test.pdf. Если возникает ошибка, она выводится в консоль.

👩‍💻

@javaquiz
👍2🔥1
⚙️ Перегрузка

Перегрузка методов происходит, когда в одном классе несколько методов имеют одинаковое имя, но разные параметры.

✔️ Это разрешается на этапе компиляции.

👩‍💻

@javaquiz
👍2
➡️ Реализация шаблонного метода с использованием default методов в интерфейсах

Java 8 представила возможность добавлять методы с реализацией по умолчанию (default) в интерфейсы.

🗣️ Это открывает интересные возможности для создания шаблонных методов, которые могут быть переопределены в классах, реализующих интерфейс.

• default методы в интерфейсах позволяют задавать базовое поведение, которое можно переопределить в классах, реализующих интерфейс.

👩‍💻

@javaquiz
👍1
➡️ Удобное преобразование строк с помощью StringJoiner

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

✔️ В Java 8 был введен класс StringJoiner, который значительно упрощает эту задачу.

👩‍💻

@javaquiz
👍1
➡️ Оптимизация работы с коллекциями с помощью метода removeIf

В Java 8 был введен метод removeIf, который позволяет удалить элементы из коллекции, удовлетворяющие определенному условию, без необходимости явного использования цикла.

👩‍💻

@javaquiz
🔥2👍1
➡️ JOOQ

JOOQ (Java Object Oriented Querying) — это мощная библиотека для построения SQL-запросов в Java с использованием объектно-ориентированного подхода. Она генерирует типизированный SQL-код на основе вашей базы данных, что позволяет избежать ошибок на этапе компиляции.

🗣 JOOQ — идеальный инструмент для тех, кто хочет сочетать мощь SQL с безопасностью и удобством объектно-ориентированного программирования в Java. Если вы еще не пробовали JOOQ, самое время начать!

🔗 Ссылочка на доку (https://github.com/jOOQ/jOOQ)

👩‍💻

@javaquiz
👍4👎3
➡️ MapStruct

MapStruct — это библиотека для автоматического преобразования данных между Java объектами. Она упрощает создание мапперов и конвертеров, минимизируя необходимость ручного написания кода для преобразования данных между различными слоями приложения.

🗣 MapStruct — это отличный инструмент для разработчиков, которые хотят автоматизировать преобразование данных и улучшить читаемость и поддержку кода. Если вам нужно легко маппировать объекты без лишнего шаблонного кода, MapStruct поможет вам достичь этого.

🔗 Ссылочка на доку (https://mapstruct.org/documentation/installation/)

👩‍💻

@javaquiz
👍5
➡️ JavaFXPorts

JavaFXPorts — это библиотека, которая позволяет использовать JavaFX для разработки кроссплатформенных приложений, поддерживающих мобильные устройства. С JavaFXPorts вы можете разрабатывать приложения на JavaFX и запускать их на Android и iOS, обеспечивая нативное взаимодействие с пользовательским интерфейсом.

🗣 JavaFXPorts — полезная библиотека для разработчиков, стремящихся расширить возможности JavaFX на мобильные платформы. Если вам нужно создать кроссплатформенное приложение с использованием Java, JavaFXPorts поможет вам достичь этой цели.

🔗 Ссылочка на доку (https://gluonhq.com/products/mobile/javafxports/)

👩‍💻

@javaquiz
Cobertura

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

👩‍💻

@javaquiz
👍3
Avaje Http Server

Avaje Http Server — это библиотека Java, которая упрощает разработку REST API с помощью аннотаций. Она генерирует код адаптера для различных фреймворков HTTP-серверов, таких как Javalin и Helidon SE.

👩‍💻

@javaquiz
ImageJ

ImageJ — это бесплатная программа с открытым исходным кодом для обработки и анализа изображений, написанная на языке Java. Она разработана Национальными институтами здоровья США (NIH) и распространяется без каких-либо лицензионных ограничений.

👩‍💻

@javaquiz
OpenCSV

OpenCSV — это библиотека Java с открытым исходным кодом, предназначенная для работы с CSV-файлами. Она обеспечивает простой и удобный интерфейс для чтения, записи, обработки и анализа CSV-данных. OpenCSV является одной из самых популярных библиотек для работы с CSV в Java, благодаря своей простоте использования, производительности и широкому набору функций.

https://opencsv.sourceforge.net/

👩‍💻

@javaquiz
👍1
➡️ Использование метода Objects::isNull для удобной проверки на null

Начиная с Java 7, был добавлен метод Objects.isNull(), который позволяет более читаемо проверять объекты на null. Это полезно для улучшения читаемости кода, особенно когда нужно часто проверять переменные на null в сложных конструкциях.

• Objects.isNull() помогает сделать код более выразительным и упрощает проверку объектов, избегая громоздких условных операторов.

👩‍💻

@javaquiz
🔥2👍1
➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию

Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.

• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.

• Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.

👩‍💻

@javaquiz