Трюк с битовыми операциями
Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.
Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.
Java Learning👩💻
Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.
Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
В чем отличия между TreeSet и HashSet?
Основное отличие между
Java Learning👩💻
Основное отличие между
TreeSet
и HashSet
заключается в том, что TreeSet
хранит элементы в отсортированном порядке, в то время как порядок хранения элементов в HashSet
не определен. TreeSet
также обеспечивает быстрый поиск и извлечение элементов в отсортированном порядке.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
JDBI3 — это легковесная библиотека для удобного взаимодействия с базами данных. Она позволяет выполнять SQL-запросы и маппить результаты прямо на объекты Java.
•
JDBI3 упрощает работу с базами данных благодаря поддержке fluent-интерфейса.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Takari — это библиотека, предназначенная для упрощения разработки Maven-плагинов. Она предоставляет удобные инструменты для создания высокопроизводительных плагинов с минимальным количеством кода.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
try-with-resources
для автоматического управления ресурсами в JavaБлок
try-with-resources
обеспечивает автоматическое закрытие ресурсов, таких как файлы, потоки, сокеты и другие, которые требуют освобождения после использования. Это упрощает управление ресурсами и помогает избежать утечек.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерн "Цепочка обязанностей" позволяет передавать запросы по цепочке обработчиков, где каждый обработчик решает, обработать запрос или передать его дальше по цепочке.
Это делает код более гибким и расширяемым, так как добавлять новые обработчики можно без изменения существующего кода.
•
Паттерн помогает избежать жесткой привязки между отправителем и получателем запроса.•
Полезен для создания гибкой системы обработки событий или запросов.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Helidon — это легковесная библиотека для создания реактивных микросервисов с использованием виртуальных потоков. Обеспечивает высокую производительность и простоту разработки.
•
Поддерживает асинхронные запросы.•
Легко интегрируется с микросервисной архитектурой.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Micronaut AOT — это библиотека для автоматической оптимизации приложений. Она улучшает производительность приложений за счет генерации кода на этапе компиляции, снижая время запуска и объем использования памяти.
•
Оптимизирует запуск приложений.•
Поддерживает интеграцию с нативными образами.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Fastutil — это библиотека, предоставляющая эффективные реализации коллекций для примитивных типов данных в Java. Она позволяет существенно сократить использование памяти и улучшить производительность по сравнению со стандартными коллекциями.
•
Fastutil поддерживает списки, множества, карты и другие структуры для примитивов.•
Повышает эффективность работы с большими объемами данных.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Agrona — это библиотека, предоставляющая эффективные структуры данных и примитивы для высокопроизводительных приложений. Она включает очереди, кольцевые буферы, а также инструменты для работы с памятью и сетевыми операциями.
•
Agrona оптимизирует использование памяти и ускоряет обработку данных.•
Идеальна для приложений с высокими требованиями к производительности.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Обработка изображений
Думаем, каждый согласится, что подавать информацию в виде изображения лучше всего для восприятия. Однако сначала нужно сгенерировать такое изображение, и на этот случай в Java есть множество инструментов.
К примеру, класс java.awt.BufferedImage который позволяет обрабатывать изображения каким угодно способом, хоть попиксельно.
Чтобы загрузить изображение из файла используют ImageIO::read, для записи — ImageIO::write.
Java Learning👩💻
Думаем, каждый согласится, что подавать информацию в виде изображения лучше всего для восприятия. Однако сначала нужно сгенерировать такое изображение, и на этот случай в Java есть множество инструментов.
К примеру, класс java.awt.BufferedImage который позволяет обрабатывать изображения каким угодно способом, хоть попиксельно.
Чтобы загрузить изображение из файла используют ImageIO::read, для записи — ImageIO::write.
Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
В Java метод
Files.move()
из пакета java.nio.file
используется для переименования или перемещения файла/директории. Он является мощным инструментом для работы с файловой системой.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Chronicle Map — это мощный инструмент для создания распределенных хранилищ "ключ-значение" с высокой производительностью. Поддерживает работу с большими объемами данных в реальном времени и отлично подходит для высоконагруженных систем.
•
Поддерживает распределенные хранилища.•
Минимальная задержка, высокая производительность.•
Идеальна для финансовых и IoT-приложений.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
В Java метод
anyMatch()
из Stream проверяет, удовлетворяет ли хотя бы один элемент условию. Отлично подходит для фильтрации и быстрого поиска.Java Learning
Please open Telegram to view this post
VIEW IN TELEGRAM