ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

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

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

Открыть в Telegram

Задачи, тесты и теоретические вопросы по JAVA. Репозиторий: https://github.com/proghub-official/java-interview Прислать задачу/вопрос в дар: @cyberJohnny Сотрудничество: @cyberJohnny

Больше
5 676
Подписчики
-224 часа
-187 дней
-3930 дней
Архив постов
👩‍💻 Задача по Java: Удаление дубликатов из списка с сохранением порядка Напишите метод, который принимает список строк и во
👩‍💻 Задача по Java: Удаление дубликатов из списка с сохранением порядка Напишите метод, который принимает список строк и возвращает новый список, содержащий только уникальные строки, сохраняя их порядок появления. Пример: import java.util.List; public class Main { public static void main(String[] args) { List input = List.of("apple", "banana", "apple", "orange", "banana"); List result = removeDuplicates(input); System.out.println(result); // Ожидаемый результат: [apple, banana, orange] } } Решение задачи на картинке ☝️ 👩‍💻 @javaquiz

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

Jackson-dataformat-csv Jackson-dataformat-csv — это библиотека Java, являющаяся модулем расширения популярной библиотеки Jack
Jackson-dataformat-csv Jackson-dataformat-csv — это библиотека Java, являющаяся модулем расширения популярной библиотеки Jackson для обработки JSON. Она позволяет читать и записывать данные в формате CSV (Comma Separated Values), который широко используется для хранения и обмена табличными данными. 👩‍💻 @javaquiz

❓ Вопрос на собеседовании Что такое 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

🔥 Нововведения Kotlin 1.9-2.2 для JVM Приглашаем на открытый урок. 🗓 19 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках ста
🔥 Нововведения Kotlin 1.9-2.2 для JVM Приглашаем на открытый урок. 🗓 19 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional». На вебинаре мы рассмотрим: - изменения в enum - data objects и data class - JvmDefault - компилятор K2 - guard conditions - break and continue в лямбдах - multi-dollar string interpolation - context parameters - context-sensitive resolution - @ all 🔗 Ссылка на регистрацию: https://clck.ru/3NbpCL Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Fastjson Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и нао
Fastjson Fastjson — это высокопроизводительная библиотека Java, предназначенная для преобразования объектов Java в JSON и наоборот. Она легкая, быстрая и простая в использовании. 👩‍💻 @javaquiz

RefactorFirst RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые
RefactorFirst RefactorFirst — это инструмент для Java-кода, помогающий определить и расставить по приоритетам классы, которые следует рефакторить в первую очередь. Он работает, сканируя код на наличие «божественных классов» (God Classes) и классов с высокой степенью связности. «Божественных классов» — это классы, которые делают слишком много и, следовательно, являются плохо спроектированными. Они могут быть трудными для понимания, тестирования и сопровождения. 👩‍💻 @javaquiz

⚙️ String.startsWith() и String.endsWith() В Java методы String.startsWith() и String.endsWith() проверяют, начинается или за
⚙️ String.startsWith() и String.endsWith() В Java методы String.startsWith() и String.endsWith() проверяют, начинается или заканчивается строка на указанную подстроку. Это удобно для работы с текстами и валидации. 👩‍💻 @javaquiz

👩‍💻 Как создать свой собственный оператор Flow и использовать его в архитектуре приложения? 🗓 12 августа в 20:00 МСК 🆓 Бе
👩‍💻 Как создать свой собственный оператор Flow и использовать его в архитектуре приложения? 🗓 12 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional». На открытом уроке вы научитесь писать свой собственный оператор Flow с нуля. Мы разберём, как интегрировать оператор в архитектуру приложения, а также научимся строить архитектуру для гибкости и масштабируемости. Этот урок идеально подойдёт разработчикам уровня junior и выше, стремящимся углубить знания и научиться эффективно использовать Flow в своих проектах. 🔗 Ссылка на регистрацию: https://clck.ru/3NVypv Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

🔥 Всё ещё сталкиваетесь с долгими релизами и ручной проверкой кода? Приглашаем на открытый урок который поможет решить эти в
🔥 Всё ещё сталкиваетесь с долгими релизами и ручной проверкой кода? Приглашаем на открытый урок который поможет решить эти вопросы. 🗓 12 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional». На открытом уроке «Почему все переходят на Kotlin? Секреты успешной миграции с Java» мы покажем, как сократить время разработки на 30% и минимизировать риски NullPointerException. Вы узнаете ключевые отличия Kotlin, пошаговый план миграции без переписывания проекта и лучшие практики корутин для асинхронности. 🦾 Представьте, что каждый новый модуль пишется быстрее, ошибок становится в три раза меньше, а вы получаете бесценный навык для современных бэкенд-проектов. 🔗 Ссылка на регистрацию: https://clck.ru/3NTKyf Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

👩‍💻 Задача по Java: Проверка строки на наличие всех букв алфавита Напишите функцию, которая проверяет, содержит ли строка в
👩‍💻 Задача по Java: Проверка строки на наличие всех букв алфавита Напишите функцию, которая проверяет, содержит ли строка все буквы английского алфавита (a-z). Игнорируйте регистр букв и символы, не являющиеся буквами. Пример: System.out.println(isPangram("The quick brown fox jumps over the lazy dog")); // Ожидаемый результат: true System.out.println(isPangram("Hello, World!")); // Ожидаемый результат: false Решение задачи на картинке ☝️ 👩‍💻 @javaquiz

Semaphore Semaphore — это класс, который позволяет ограничивать количество потоков, одновременно работающих с каким-либо ресу
Semaphore Semaphore — это класс, который позволяет ограничивать количество потоков, одновременно работающих с каким-либо ресурсом. Поток должен получить разрешение, чтобы войти в критическую секцию. Semaphore управляет набором разрешений (permits), а конструктор принимает количество разрешений. Если разрешений нет, поток ставится в очередь до освобождения. Метод acquire() получает разрешение, release() — освобождает. 👩‍💻 @javaquiz

❓ Вопрос на собеседовании Как работает CompletableFuture в Java, чем он отличается от Future, и как использовать метод thenCombine() для выполнения параллельных задач? Ответ ⬇️ CompletableFuture — это расширение Future, позволяющее выполнять асинхронные задачи и комбинировать их без необходимости вручную управлять потоками. В отличие от Future, он предоставляет богатый API для обработки результатов, включая цепочку методов и возможность комбинирования нескольких задач. Метод thenCombine() используется для объединения результатов двух асинхронных задач, выполняемых параллельно, в одну итоговую операцию. Пример использования ⚙️ import java.util.concurrent.CompletableFuture; public class Main { public static void main(String[] args) { // Первая асинхронная задача CompletableFuture task1 = CompletableFuture.supplyAsync(() -> { try { Thread.sleep(1000); // Эмуляция задержки } catch (InterruptedException e) { e.printStackTrace(); } return 10; }); // Вторая асинхронная задача CompletableFuture task2 = CompletableFuture.supplyAsync(() -> 20); // Комбинируем результаты двух задач CompletableFuture combined = task1.thenCombine(task2, Integer::sum); // Получаем и выводим результат combined.thenAccept(result -> System.out.println("Сумма: " + result)); // Ждем завершения всех задач (только для примера) combined.join(); } } // Результат выполнения: // Сумма: 30 👩‍💻 @javaquiz

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

👩‍💻 Хотите научиться создавать полноценные Android-приложения с интеграцией API? Приглашаем на открытый урок, создадим прил
👩‍💻 Хотите научиться создавать полноценные Android-приложения с интеграцией API? Приглашаем на открытый урок, создадим приложение «Фото дня» 🗓 05 августа в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional». На вебинаре: - Разберемся с API сервера для скачивания фотографии и описания к ней - Сверстаем простой экран для отображения данных - Пропишем выход в интернет для скачивания данных - Пропишем бизнес-логику для отображения данных на экране приложения 🔗 Ссылка на регистрацию: https://clck.ru/3NJ7rr Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Тест на внимательность. Перед вами фрагмент кода из проекта Huawei Cloud. Где здесь ошибка?
@Override
public void putToCache(PutRecordsRequest putRecordsRequest) {
  .... 
  if (dataTmpFile == null || !dataTmpFile.exists()) {
    try {
      dataTmpFile.createNewFile();
    }
    catch (IOException e) {
      LOGGER.error("Failed to create cache tmp file, return.", e);
      return;
    }
  }
  ....
}
Ошибка допущена в условии dataTmpFile == null || !dataTmpFile.exists() Если dataTmpFile — null, то исполнение перейдёт в then-ветвь оператора if, где произойдёт разыменование нулевой ссылки. Задачка из квиза на поиски ошибок в Java коде, опубликована на сайте PVS-Studio.

➡️ Vaadin Flow — фреймворк для веб-приложений на чистой Java Vaadin Flow — это фреймворк для создания веб-приложений на Java
➡️ Vaadin Flow — фреймворк для веб-приложений на чистой Java Vaadin Flow — это фреймворк для создания веб-приложений на Java без написания JavaScript и HTML. Он позволяет создавать интерфейсы и логику приложения полностью на Java. • Полная разработка на Java. • Компоненты для UI и двусторонняя привязка данных. • Интеграция с Spring Boot. 🔗 Ссылочка на доку (https://vaadin.com/docs/latest/) 👩‍💻 @javaquiz

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