KeyListener
KeyListener — это интерфейс в Java, который позволяет отслеживать события, связанные с клавиатурой. Он используется для определения того, когда пользователь нажимает, отпускает или печатает клавишу.
👩💻
@javaquiz
KeyListener — это интерфейс в Java, который позволяет отслеживать события, связанные с клавиатурой. Он используется для определения того, когда пользователь нажимает, отпускает или печатает клавишу.
👩💻
@javaquiz
👍1
DelayQueue
DelayQueue — это очередь, которая хранит элементы в порядке их задержки. Элементы в очереди извлекаются только после истечения их задержки.
DelayQueue реализует интерфейс BlockingQueue, поэтому элементы могут извлекаться из нее только блокирующими методами take() или poll(long timeout, TimeUnit unit).
Элементы DelayQueue должны реализовывать интерфейс Delayed. Интерфейс Delayed определяет два метода:
getDelay(): возвращает оставшуюся задержку элемента в миллисекундах.
isExpired(): возвращает true, если задержка элемента истекла.
👩💻
@javaquiz
DelayQueue — это очередь, которая хранит элементы в порядке их задержки. Элементы в очереди извлекаются только после истечения их задержки.
DelayQueue реализует интерфейс BlockingQueue, поэтому элементы могут извлекаться из нее только блокирующими методами take() или poll(long timeout, TimeUnit unit).
Элементы DelayQueue должны реализовывать интерфейс Delayed. Интерфейс Delayed определяет два метода:
getDelay(): возвращает оставшуюся задержку элемента в миллисекундах.
isExpired(): возвращает true, если задержка элемента истекла.
👩💻
@javaquiz
👍1🔥1
➡️ Использование метода Collectors.mapping() для преобразования данных при сборе в коллекцию
Метод Collectors.mapping() позволяет преобразовывать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно не только собрать данные, но и предварительно изменить каждый элемент (например, преобразовать объект в строку).
• Collectors.mapping() делает код более гибким и позволяет одновременно выполнять преобразования и сбор данных.
• Этот метод особенно полезен для сбора данных с модификацией их формата или структуры.
👩💻
@javaquiz
Метод Collectors.mapping() позволяет преобразовывать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно не только собрать данные, но и предварительно изменить каждый элемент (например, преобразовать объект в строку).
• Collectors.mapping() делает код более гибким и позволяет одновременно выполнять преобразования и сбор данных.
• Этот метод особенно полезен для сбора данных с модификацией их формата или структуры.
👩💻
@javaquiz
👍4
#вопросы_с_собеседований
🤔 Что будет, если в static блоке кода возникнет исключение?
Если в static блоке кода возникнет исключение, то это приведет к ошибке инициализации класса.
Static блок выполняется при загрузке класса, и любые исключения в нем приведут к сбою и невозможности загрузить класс.
Поэтому нужно либо обрабатывать исключения в static блоке, либо избегать кода, который может привести к исключениям.
Лучше выносить в static блок только простую инициализацию, а сложную логику помещать в конструктор или методы класса.
👩💻
@javaquiz
🤔 Что будет, если в static блоке кода возникнет исключение?
Если в static блоке кода возникнет исключение, то это приведет к ошибке инициализации класса.
Static блок выполняется при загрузке класса, и любые исключения в нем приведут к сбою и невозможности загрузить класс.
Поэтому нужно либо обрабатывать исключения в static блоке, либо избегать кода, который может привести к исключениям.
Лучше выносить в static блок только простую инициализацию, а сложную логику помещать в конструктор или методы класса.
👩💻
@javaquiz
👍3
➡️ Использование библиотеки Jodd для упрощения повседневных задач в Java
Jodd — это набор утилит и инструментов для Java, который содержит множество полезных компонентов для работы с JSON, HTTP, Email, файловой системой и многим другим. В отличие от узкоспециализированных библиотек, Jodd предоставляет универсальные и лёгкие в использовании утилиты для повседневных задач.
• Jodd — отличный выбор, если вам нужен набор небольших и эффективных инструментов для решения повседневных проблем в Java-программировании.
🔗 Ссылочка на доку (https://github.com/oblac)
👩💻
@javaquiz
Jodd — это набор утилит и инструментов для Java, который содержит множество полезных компонентов для работы с JSON, HTTP, Email, файловой системой и многим другим. В отличие от узкоспециализированных библиотек, Jodd предоставляет универсальные и лёгкие в использовании утилиты для повседневных задач.
• Jodd — отличный выбор, если вам нужен набор небольших и эффективных инструментов для решения повседневных проблем в Java-программировании.
🔗 Ссылочка на доку (https://github.com/oblac)
👩💻
@javaquiz
👍2
➡️ Использование метода formatted для более простого форматирования строк (Java 15+)
Метод formatted — это новая функция, появившаяся в Java 15, которая позволяет легко форматировать строки. Этот метод является лаконичной и более читабельной альтернативой методу String.format(). Теперь вы можете напрямую вызывать метод форматирования на строковом литерале или объекте String.
• formatted упрощает форматирование строк, делая код более компактным и понятным.
👩💻
@javaquiz
Метод formatted — это новая функция, появившаяся в Java 15, которая позволяет легко форматировать строки. Этот метод является лаконичной и более читабельной альтернативой методу String.format(). Теперь вы можете напрямую вызывать метод форматирования на строковом литерале или объекте String.
• formatted упрощает форматирование строк, делая код более компактным и понятным.
👩💻
@javaquiz
🔥2
➡️ Использование библиотеки joor для упрощенной работы с рефлексией в Java
Joor — это легковесная библиотека для работы с рефлексией в Java, которая значительно упрощает использование этого мощного механизма.
✔️ Она предоставляет удобный API для создания экземпляров, вызова методов и доступа к полям классов, делая код более читаемым и компактным.
🔗 Ссылочка на доку (https://github.com/jOOQ/joor)
👩💻
@javaquiz
Joor — это легковесная библиотека для работы с рефлексией в Java, которая значительно упрощает использование этого мощного механизма.
✔️ Она предоставляет удобный API для создания экземпляров, вызова методов и доступа к полям классов, делая код более читаемым и компактным.
🔗 Ссылочка на доку (https://github.com/jOOQ/joor)
👩💻
@javaquiz
Метод isDaemon()
Метод isDaemon() используется для определения, является ли поток демоном или нет.
Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.
👩💻
@javaquiz
Метод isDaemon() используется для определения, является ли поток демоном или нет.
Демон (daemon) — это поток, который работает в фоновом режиме и не препятствует завершению программы. Основная программа может завершиться, даже если демон все еще выполняется.
👩💻
@javaquiz
👍3
❓ Что такое Lambda-выражения?
Лямбда-выражения — это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы.
🗣 Лямбда-выражения значительно упрощают работу с такими функциональными интерфейсами, как Runnable, Callable, Comparator и многими другими.
✔️ Преимущества Lambda-выражений
• Краткость: Лямбда-выражения позволяют писать меньше кода.
• Читаемость: Код становится более читабельным и понятным.
• Поддержка функциональных интерфейсов: Лямбда-выражения работают с функциональными интерфейсами, делая работу с ними проще и интуитивно понятной.
• Повышенная производительность: В некоторых случаях лямбда-выражения могут улучшить производительность за счёт оптимизаций, выполненных компилятором.
👩💻
@javaquiz
Лямбда-выражения — это способ написать анонимные функции (или функциональные объекты) в Java. Они были введены в Java 8 и позволяют передавать поведение как аргументы в методы.
🗣 Лямбда-выражения значительно упрощают работу с такими функциональными интерфейсами, как Runnable, Callable, Comparator и многими другими.
✔️ Преимущества Lambda-выражений
• Краткость: Лямбда-выражения позволяют писать меньше кода.
• Читаемость: Код становится более читабельным и понятным.
• Поддержка функциональных интерфейсов: Лямбда-выражения работают с функциональными интерфейсами, делая работу с ними проще и интуитивно понятной.
• Повышенная производительность: В некоторых случаях лямбда-выражения могут улучшить производительность за счёт оптимизаций, выполненных компилятором.
👩💻
@javaquiz
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
⚙️ 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
⚙️ 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
➡️ 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
⚙️ Comparator.reverseOrder()
В Java метод Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.
👩💻
@javaquiz
В Java метод Comparator.reverseOrder() создаёт компаратор, который сортирует элементы в порядке убывания. Это удобно для работы с сортировкой коллекций, когда нужно изменить стандартный порядок.
👩💻
@javaquiz
👍2