uniVocity-parsers
uniVocity-parsers — это набор высокопроизводительных и надежных парсеров для Java. Он предлагает унифицированный интерфейс для работы с различными форматами файлов, а также надежную инфраструктуру для разработки новых парсеров.
👩💻
@javaquiz
uniVocity-parsers — это набор высокопроизводительных и надежных парсеров для Java. Он предлагает унифицированный интерфейс для работы с различными форматами файлов, а также надежную инфраструктуру для разработки новых парсеров.
👩💻
@javaquiz
⚙️ Files.move()
В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.
👩💻
@javaquiz
В Java метод Files.move() из пакета java.nio.file используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.
👩💻
@javaquiz
➡️ Использование Chronicle Map для распределенных ключ-значение хранилищ
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.
• Поддерживает распределенные хранилища.
• Минимальная задержка, высокая производительность.
• Идеальна для финансовых и IoT-приложений.
🔗 Ссылочка на доку (https://github.com/OpenHFT/Chronicle-Map)
👩💻
@javaquiz
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.
• Поддерживает распределенные хранилища.
• Минимальная задержка, высокая производительность.
• Идеальна для финансовых и IoT-приложений.
🔗 Ссылочка на доку (https://github.com/OpenHFT/Chronicle-Map)
👩💻
@javaquiz
👍1
👩💻 31 июля стартует курс «Java-разработчик» от OTUS — это то, что нужно, если вы хотите успешно вкатиться в разработку в 2025
🦾 Вас ждет огромное количество практики и реальные кейсы: настройка окружения, базовые алгоритмы, синтаксис Java, Spring и Docker. Мы покажем, почему диплом OTUS ценят HR в крупных компаниях.
Если вы сисадмин, тестировщик, аналитик или просто хотите освоить программирование с нуля — этот курс для вас.
Мы научим создавать серверные веб-приложения, работать с PostgreSQL, Kafka и Kubernetes, формировать портфолио и готовить резюме под Middle-Java-Dev.
🎁Дарим промокод, который дает скидку на обучение - JAVA7
👉 Оставьте заявку и и присоединяйтесь к группе: https://clck.ru/3NDXJQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🦾 Вас ждет огромное количество практики и реальные кейсы: настройка окружения, базовые алгоритмы, синтаксис Java, Spring и Docker. Мы покажем, почему диплом OTUS ценят HR в крупных компаниях.
Если вы сисадмин, тестировщик, аналитик или просто хотите освоить программирование с нуля — этот курс для вас.
Мы научим создавать серверные веб-приложения, работать с PostgreSQL, Kafka и Kubernetes, формировать портфолио и готовить резюме под Middle-Java-Dev.
🎁
👉 Оставьте заявку и и присоединяйтесь к группе: https://clck.ru/3NDXJQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🤖 Ваш подход к разработке устарел? Тратите время на функции, которые давно готовы в сторонних сервисах?
Приглашаем на открытый урок «Стиль разработки 2020-х и среда окружения современного бэкенд-приложения».
🗓 30 июля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
На открытом уроке вы узнаете, как поменялся стиль разработки в 2020-х и какие компоненты уже не нужно писать самому. Поговорим о том, как в современном бэкенде выполнять только ключевую бизнес-логику.
🔥Вы получите готовые инфраструктурные файлы, которые упростят создание приложений на Kotlin и любых других языках.
🔗 Ссылка на регистрацию: https://clck.ru/3NDXH9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Приглашаем на открытый урок «Стиль разработки 2020-х и среда окружения современного бэкенд-приложения».
🗓 30 июля в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».
На открытом уроке вы узнаете, как поменялся стиль разработки в 2020-х и какие компоненты уже не нужно писать самому. Поговорим о том, как в современном бэкенде выполнять только ключевую бизнес-логику.
🔥Вы получите готовые инфраструктурные файлы, которые упростят создание приложений на Kotlin и любых других языках.
🔗 Ссылка на регистрацию: https://clck.ru/3NDXH9
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
❓ Вопрос на собеседовании
Что такое функциональный интерфейс в Java, и как он используется в лямбда-выражениях?
Ответ ⬇️
Функциональный интерфейс в Java — это интерфейс с единственным абстрактным методом, который может использоваться как целевая конструкция для лямбда-выражений и ссылок на методы. Они помогают писать более чистый и выразительный код, позволяя передавать поведение (функции) как параметры. Аннотация @FunctionalInterface (https://yangx.top/FunctionalInterface) проверяет, что интерфейс соответствует требованиям функционального интерфейса и помогает избежать случайного добавления методов.
Пример использования ⚙️
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}
public class Main {
public static void main(String[] args) {
MyFunctionalInterface printer = message -> System.out.println("Сообщение: " + message);
printer.printMessage("Привет, мир!"); // Сообщение: Привет, мир!
}
}
👩💻
@javaquiz
Что такое функциональный интерфейс в Java, и как он используется в лямбда-выражениях?
Ответ ⬇️
Функциональный интерфейс в Java — это интерфейс с единственным абстрактным методом, который может использоваться как целевая конструкция для лямбда-выражений и ссылок на методы. Они помогают писать более чистый и выразительный код, позволяя передавать поведение (функции) как параметры. Аннотация @FunctionalInterface (https://yangx.top/FunctionalInterface) проверяет, что интерфейс соответствует требованиям функционального интерфейса и помогает избежать случайного добавления методов.
Пример использования ⚙️
@FunctionalInterface
interface MyFunctionalInterface {
void printMessage(String message);
}
public class Main {
public static void main(String[] args) {
MyFunctionalInterface printer = message -> System.out.println("Сообщение: " + message);
printer.printMessage("Привет, мир!"); // Сообщение: Привет, мир!
}
}
👩💻
@javaquiz
Telegram
RanolP
https://toss.me/RanolP 후원해주신다구요? 감사합니다
👍1
⁉️👩💻Разрабатываете на Java, но проект на Spring превращается в черный ящик? Бины ведут себя непредсказуемо, конфигурация разрастается, а ошибка в одном модуле рушит всю систему.
Интервью на позицию Middle неудачно — не хватает уверенности в Spring.
🤝 Тем временем рынок требует специалистов, которые не просто знают Spring, а умеют строить продакшен-приложения с его помощью. Компании ищут разработчиков, которые понимают, как работают Spring Boot, Spring Security, Spring MVC и могут строить микросервисную архитектуру.
⚡️ На курсе «Разработчик на Spring Framework» мы закроем пробелы и дадим актуальные навыки. Практика на реальных кейсах, ревью заданий, тестовое собеседование — вы освоите Spring так, чтобы уверенно применять его в работе.
➡️ Пройдите вступительное тестирование и получите скидку на обучение: https://clck.ru/3NEiKj
🎁Дарим промокод, который дает скидку на обучение - SRING7
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Интервью на позицию Middle неудачно — не хватает уверенности в Spring.
🤝 Тем временем рынок требует специалистов, которые не просто знают Spring, а умеют строить продакшен-приложения с его помощью. Компании ищут разработчиков, которые понимают, как работают Spring Boot, Spring Security, Spring MVC и могут строить микросервисную архитектуру.
⚡️ На курсе «Разработчик на Spring Framework» мы закроем пробелы и дадим актуальные навыки. Практика на реальных кейсах, ревью заданий, тестовое собеседование — вы освоите Spring так, чтобы уверенно применять его в работе.
➡️ Пройдите вступительное тестирование и получите скидку на обучение: https://clck.ru/3NEiKj
🎁
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Collections.reverse()
В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.
👩💻
@javaquiz
В Java метод Collections.reverse() изменяет порядок элементов в списке на обратный. Это удобно для работы с коллекциями, где требуется обратный порядок.
👩💻
@javaquiz
👍1
➡️ Feign: Секрет быстрого и чистого вызова REST API в Java
Feign – библиотека для Java, автоматизирующая вызов REST API. Она сокращает код, создавая запросы и обрабатывая исключения без лишних конструкций. Идеально подходит для работы с несколькими API и упрощает тестирование.
• Автоматическая генерация кода для вызова API, избавляя от рутины.
• Лёгкость тестирования и расширяемость при добавлении новых API.
🔗 Ссылочка на доку (https://github.com/OpenFeign/feign#why-feign-and-not-x)
👩💻
@javaquiz
Feign – библиотека для Java, автоматизирующая вызов REST API. Она сокращает код, создавая запросы и обрабатывая исключения без лишних конструкций. Идеально подходит для работы с несколькими API и упрощает тестирование.
• Автоматическая генерация кода для вызова API, избавляя от рутины.
• Лёгкость тестирования и расширяемость при добавлении новых API.
🔗 Ссылочка на доку (https://github.com/OpenFeign/feign#why-feign-and-not-x)
👩💻
@javaquiz
👍3
👩💻 Ваши Java-приложения под нагрузкой едва дышат? Профилирование и оптимизация кода остаются за скобками?
Курс «Java Developer. Advanced» от OTUS — это глубокое погружение в устройство JVM, байткод, сборщики мусора, профилирование и оптимизацию в облаке.
Наши эксперты-практики покажут, как выбрать GC, снять дамп памяти и обнаружить утечки, как профилировать “горячие” места, настраивать интеграцию с Prometheus & Grafana и деплоить сервисы в Kubernetes.
🦾 Вы научитесь обосновывать выбор JVM-имплементации, анализировать heap-дампы, синхронизировать потоки, использовать Reactor и неблокирующие I/O, проектировать метрики и трассировку.
🎁Дарим промокод, который дает скидку на обучение - JVADV7
➡️ Пройдите короткий тест и присоединяйтесь к группе: https://clck.ru/3NHH2Y
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Курс «Java Developer. Advanced» от OTUS — это глубокое погружение в устройство JVM, байткод, сборщики мусора, профилирование и оптимизацию в облаке.
Наши эксперты-практики покажут, как выбрать GC, снять дамп памяти и обнаружить утечки, как профилировать “горячие” места, настраивать интеграцию с Prometheus & Grafana и деплоить сервисы в Kubernetes.
🦾 Вы научитесь обосновывать выбор JVM-имплементации, анализировать heap-дампы, синхронизировать потоки, использовать Reactor и неблокирующие I/O, проектировать метрики и трассировку.
🎁
➡️ Пройдите короткий тест и присоединяйтесь к группе: https://clck.ru/3NHH2Y
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Optional.ofNullable()
В Java метод Optional.ofNullable() создаёт объект Optional, который может содержать значение или быть пустым. Полезен для избежания NullPointerException и обработки необязательных значений.
👩💻
@javaquiz
В Java метод Optional.ofNullable() создаёт объект Optional, который может содержать значение или быть пустым. Полезен для избежания NullPointerException и обработки необязательных значений.
👩💻
@javaquiz
👍2
#Вопросы_с_собеседования
В чем разница между Thread.sleep() и Thread.yield()?
Thread.sleep(): Этот метод приостанавливает выполнение текущего потока на заданное количество времени. Время задается в миллисекундах и указывается в качестве аргумента метода. При вызове Thread.sleep(), поток переходит в состояние ожидания и не выполняет код в течение указанного периода времени. После истечения времени поток снова становится готовым к выполнению. Вызов Thread.sleep() может сгенерировать исключение InterruptedException, поэтому необходимо обрабатывать его или пробрасывать.
Thread.yield(): Этот метод предоставляет намек планировщику потоков на то, что поток, вызвавший yield(), готов уступить процессорное время другим потокам с тем же приоритетом. Однако это рекомендация, а не гарантия. Вызов Thread.yield() приводит к тому, что текущий поток переходит из исполняемого в состояние готовности, чтобы другие потоки могли получить доступ к процессору. Однако, если нет других готовых потоков с тем же приоритетом, поток может продолжить выполнение.
👩💻
@javaquiz
В чем разница между Thread.sleep() и Thread.yield()?
Thread.sleep(): Этот метод приостанавливает выполнение текущего потока на заданное количество времени. Время задается в миллисекундах и указывается в качестве аргумента метода. При вызове Thread.sleep(), поток переходит в состояние ожидания и не выполняет код в течение указанного периода времени. После истечения времени поток снова становится готовым к выполнению. Вызов Thread.sleep() может сгенерировать исключение InterruptedException, поэтому необходимо обрабатывать его или пробрасывать.
Thread.yield(): Этот метод предоставляет намек планировщику потоков на то, что поток, вызвавший yield(), готов уступить процессорное время другим потокам с тем же приоритетом. Однако это рекомендация, а не гарантия. Вызов Thread.yield() приводит к тому, что текущий поток переходит из исполняемого в состояние готовности, чтобы другие потоки могли получить доступ к процессору. Однако, если нет других готовых потоков с тем же приоритетом, поток может продолжить выполнение.
👩💻
@javaquiz
👍2
⚙️ Collectors.joining()
В Java метод Collectors.joining() из пакета java.util.stream позволяет объединить элементы потока в одну строку с опциональным разделителем, префиксом и суффиксом. Это удобно для создания строковых представлений коллекций.
👩💻
@javaquiz
В Java метод Collectors.joining() из пакета java.util.stream позволяет объединить элементы потока в одну строку с опциональным разделителем, префиксом и суффиксом. Это удобно для создания строковых представлений коллекций.
👩💻
@javaquiz
👍3
⌨️ 🤖 Хочешь прокачаться в backend-разработке? Но справишься ли ты с тестом по Kotlin?
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и приходи учиться на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
На курсе:
✔️ Разработаете monolith, микросервисы и serverless с помощью Kotlin и фреймворков Spring, Ktor и бессерверных библиотек.
✔️ Освоите корутины для асинхронных и многопоточных задач, а также WebSocket, RabbitMQ, Kafka для транспорта.
✔️ Научитесь строить хранилища на Postgres, Cassandra, ArcadeDb и интегрировать OpenAPI с любым фронтендом.
🎫 Курс можно приобрести в рассрочку
➡️ Пройди тест и присоединяйся к группе: https://clck.ru/3NJ6uK
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и приходи учиться на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!
На курсе:
✔️ Разработаете monolith, микросервисы и serverless с помощью Kotlin и фреймворков Spring, Ktor и бессерверных библиотек.
✔️ Освоите корутины для асинхронных и многопоточных задач, а также WebSocket, RabbitMQ, Kafka для транспорта.
✔️ Научитесь строить хранилища на Postgres, Cassandra, ArcadeDb и интегрировать OpenAPI с любым фронтендом.
🎫 Курс можно приобрести в рассрочку
➡️ Пройди тест и присоединяйся к группе: https://clck.ru/3NJ6uK
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
➡️ Quarkus — быстрый и лёгкий фреймворк для Java-приложений
Quarkus — оптимизированный фреймворк для создания Java-приложений с низким временем запуска и минимальным потреблением памяти. Подходит для облачных и серверлесс-приложений.
• Быстрый старт с нативной компиляцией на GraalVM.
• Оптимизация для облака и контейнеров.
• Совместимость с Java API и фреймворками Spring, Hibernate.
• Горячая перезагрузка для ускорения разработки.
🔗 Ссылочка на доку (https://quarkus.io/guides/)
👩💻
@javaquiz
Quarkus — оптимизированный фреймворк для создания Java-приложений с низким временем запуска и минимальным потреблением памяти. Подходит для облачных и серверлесс-приложений.
• Быстрый старт с нативной компиляцией на GraalVM.
• Оптимизация для облака и контейнеров.
• Совместимость с Java API и фреймворками Spring, Hibernate.
• Горячая перезагрузка для ускорения разработки.
🔗 Ссылочка на доку (https://quarkus.io/guides/)
👩💻
@javaquiz
🎉1
➡️ Vaadin Flow — фреймворк для веб-приложений на чистой Java
Vaadin Flow — это фреймворк для создания веб-приложений на Java без написания JavaScript и HTML. Он позволяет создавать интерфейсы и логику приложения полностью на Java.
• Полная разработка на Java.
• Компоненты для UI и двусторонняя привязка данных.
• Интеграция с Spring Boot.
🔗 Ссылочка на доку (https://vaadin.com/docs/latest/)
👩💻
@javaquiz
Vaadin Flow — это фреймворк для создания веб-приложений на Java без написания JavaScript и HTML. Он позволяет создавать интерфейсы и логику приложения полностью на Java.
• Полная разработка на Java.
• Компоненты для UI и двусторонняя привязка данных.
• Интеграция с Spring Boot.
🔗 Ссылочка на доку (https://vaadin.com/docs/latest/)
👩💻
@javaquiz
👍2
Тест на внимательность. Перед вами фрагмент кода из проекта Huawei Cloud. Где здесь ошибка?
Ошибка допущенав условии dataTmpFile == null || !dataTmpFile.exists()
Если dataTmpFile — null, то исполнение перейдёт в then-ветвь оператора if, где произойдёт разыменование нулевой ссылки.
Задачка из квиза на поиски ошибок в Java коде, опубликована на сайте PVS-Studio.
@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, то исполнение перейдёт в then-ветвь оператора if, где произойдёт разыменование нулевой ссылки.
Задачка из квиза на поиски ошибок в Java коде, опубликована на сайте PVS-Studio.
👍3👎2
👩💻 Хотите научиться создавать полноценные Android-приложения с интеграцией API?
Приглашаем на открытый урок, создадим приложение «Фото дня»
🗓 05 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На вебинаре:
- Разберемся с API сервера для скачивания фотографии и описания к ней
- Сверстаем простой экран для отображения данных
- Пропишем выход в интернет для скачивания данных
- Пропишем бизнес-логику для отображения данных на экране приложения
🔗 Ссылка на регистрацию: https://clck.ru/3NJ7rr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Приглашаем на открытый урок, создадим приложение «Фото дня»
🗓 05 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Android Developer. Professional».
На вебинаре:
- Разберемся с API сервера для скачивания фотографии и описания к ней
- Сверстаем простой экран для отображения данных
- Пропишем выход в интернет для скачивания данных
- Пропишем бизнес-логику для отображения данных на экране приложения
🔗 Ссылка на регистрацию: https://clck.ru/3NJ7rr
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ Comparator.reverseOrder()
В Java метод Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.
👩💻
@javaquiz
В Java метод Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.
👩💻
@javaquiz
👍2
❓ Вопрос на собеседовании
Как работает 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
Как работает 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