Перейти к содержимому
Технологии IT обновлён 27.02.2024

Java задачи с собеседований

Канал "Java задачи с собеседований" предлагает задачи, тесты и теоретические вопросы по языку программирования Java. Здесь вы найдете разнообразные задания, которые помогут вам подготовиться к собеседованиям и улучшить свои навыки в Java. Канал также предлагает информацию о важных концепциях и темах в Java, которые могут быть полезными при подготовке к собеседованиям. Присоединяйтесь к каналу "Java задачи с собеседований", чтобы получить доступ к интересным задачам и расширить свои знания в Java.

Публикации канала

🔥 Прожарка резюме Java-разработчиков Откликаешься, а в ответ тишина? Или зовут, но предлагают меньше, чем рассчитываешь? Возможно, дело не в навыках, а в резюме. 27 октября рекрутер из Skyeng и Java-разработчик из Wildberries разберут резюме участников в прямом эфире! Что разберём: ✦ почему рекрутер закрывает резюме, не дочитав до конца; ✦ как показать свой вклад и результаты, а не просто перечислить технологии; ✦ какие формулировки могут занизить твой грейд. 🗓 27 октября в 19:00 МСК Участие бесплатное 👥 Спикеры: — Анастасия Дегтярь, Senior TA в Skyeng, 6+ лет в найме; — Виктор Анохин, Java/Kotlin-разработчик в Wildberries, ex-Билайн. Эфир проводит ШОРТКАТ – менторская программа для разработчиков, которые хотят сменить работу или вырасти в грейде и зарплате. Переходи в бота, чтобы зарегистрироваться на эфир: @shortcut_sh_bot Реклама. О рекламодателе.

Открыть в Telegram

❓ Вопрос на собеседовании Что такое ForkJoinPool в Java, как он работает, и как его использовать для параллельной обработки задач? Ответ ⬇️ ForkJoinPool — это специализированный пул потоков, который рекурсивно делит задачи на подзадачи (fork) и объединяет их результаты (join). Он оптимизирован для задач, которые можно разделить на независимые части, например, вычисление суммы элементов массива. Основными классами являются RecursiveTask для задач с результатом и RecursiveAction для задач без результата. Пример использования ⚙️ import java.util.concurrent.RecursiveTask; import java.util.concurrent.ForkJoinPool; class SumTask extends RecursiveTask { private final int[] array; private final int start, end; public SumTask(int[] array, int start, int end) { this.array = array; this.start = start; this.end = end; } @Override protected Integer compute() { if (end - start @javaquiz

Открыть в Telegram

⚙️ List.subList() В Java метод subList() позволяет создать представление части списка. Это удобно для работы с подмножествами коллекций без необходимости копирования элементов. 👩‍💻 @javaquiz

Открыть в Telegram

➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений Quarkus — оптимизированный фреймворк для создания Java-приложений с низким временем запуска и минимальным потреблением памяти. Подходит для облачных и серверлесс-приложений. • Быстрый старт с нативной компиляцией на GraalVM. • Оптимизация для облака и контейнеров. • Совместимость с Java API и фреймворками Spring, Hibernate. • Горячая перезагрузка для ускорения разработки. 🔗 Ссылочка на доку (https://quarkus.io/guides/) 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ Files.mismatch() Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов. 👩‍💻 @javaquiz

Открыть в Telegram

❓ Вопрос на собеседовании Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде? Ответ ⬇️ ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры. Пример использования ⚙️ import java.util.concurrent.ConcurrentHashMap; public class Main { public static void main(String[] args) { ConcurrentHashMap map = new ConcurrentHashMap(); map.put("Alice", 1); map.put("Bob", 2); map.computeIfPresent("Alice", (key, val) -> val + 1); System.out.println(map); // {Alice=2, Bob=2} } } 👩‍💻 @javaquiz

Открыть в Telegram

#вопросы_с_собеседований Что будет, если в Map положить два значения с одинаковым ключом? Если в Map положить два значения с одинаковым ключом, то произойдет следующее: — При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано. — Map может содержать только уникальные ключи. При попытке добавить дублирующийся ключ, старое связанное значение будет заменено новым. — Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ. Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены. 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ String.replaceAll() В Java метод String.replaceAll() заменяет все вхождения текста, соответствующего регулярному выражению, на заданную строку. Это мощный инструмент для обработки строк. 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ Collectors.toMap() В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение. 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ Stream.collect() с Collector.of() В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов. 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ Collections.reverse() В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок. 👩‍💻 @javaquiz

Открыть в Telegram

➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем. • Поддерживает распределенные хранилища. • Минимальная задержка, высокая производительность. • Идеальна для финансовых и IoT-приложений. 🔗 Ссылочка на доку (https://github.com/OpenHFT/Chronicle-Map) 👩‍💻 @javaquiz

Открыть в Telegram

⚙️ Files.move() В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой. 👩‍💻 @javaquiz

Открыть в Telegram

Метод isDaemon() Метод isDaemon() используется для определения, является ли поток демоном или нет. Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется. 👩‍💻 @javaquiz

Открыть в Telegram

➡️ Использование метода Stream.takeWhile() для фильтрации данных Stream.takeWhile() — это метод, который появился в Java 9 и позволяет получать элементы потока до тех пор, пока выполняется заданное условие. Как только условие перестаёт выполняться, поток завершает свою работу, и оставшиеся элементы не проверяются. • takeWhile() полезен для работы с отсортированными данными, где нужно выбрать элементы, соответствующие определённому критерию, до первого неподходящего элемента. 👩‍💻 @javaquiz

Открыть в Telegram

➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока. • Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования. • Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию. 👩‍💻 @javaquiz

Открыть в Telegram

➡️ Apache Commons Lang Apache Commons Lang — это библиотека, которая расширяет стандартную библиотеку Java, предоставляя множество утилит для работы со строками, числовыми операциями, рефлексией и другими общими задачами программирования. 🗣 Если вам часто приходится манипулировать строками, работать с числами или использовать рефлексию, Apache Commons Lang может стать незаменимым помощником. 🔗 Ссылочка на доку (https://commons.apache.org/proper/commons-lang/) 👩‍💻 @javaquiz

Открыть в Telegram

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

Открыть в Telegram

Комментарии

0

Комментарии пишут вошедшие — так видно, кто автор.

Войти

Комментариев пока нет

Будьте первым, кто расскажет о канале другим.

Пожаловаться на канал

Расскажите, что не так: модератор проверит канал и примет решение. Подпись не нужна, но почту можно оставить — тогда ответим.

Причина Что не так (необязательно) Почта для ответа (необязательно)
Открыть в Telegram