dependencies {
implementation 'info.picocli:picocli:4.7.6'
}Picocli — это современный фреймворк Java для создания мощных, удобных CLI с поддержкой GraalVM.
Picocli поддерживает цвета, автозаполнение, внутренние команды и многое другое.
Написан на Java, может использоваться из Groovy, Kotlin, Scala и т. д.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3❤2
Скомпилируется ли код с картинки?
Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.
✅ Java библиотека #java
Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤5🔥2
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-api</artifactId>
<version>0.12.0</version>
</dependency>
Apache PLC4X — это библиотека Java для унифицированного взаимодействия с программируемыми логическими контроллерами (ПЛК) промышленного класса и подобными IoT-устройствами.
PLC4X реализует наиболее распространенные промышленные коммуникационные протоколы и использует их для связи с различными типами устройств.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤4🔥2
Media is too big
VIEW IN TELEGRAM
Выпуск 5. Простой REST-контроллер и простой репозиторий для ГРН.
В этом выпуске мы создадим простой репозитория для чтения данных из таблицы и простой REST-контроллер для получения данных в браузере.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥2
Объединение строк с помощью String.join
Часто возникает необходимость объединять несколько строк в одну, используя определенный разделитель.
До Java 8 это обычно делалось с помощью цикла и объекта StringBuilder. С появлением метода String.join, эта задача стала намного проще и лаконичнее.
Использование метода String.join значительно упрощает задачу объединения строк с разделителем, делая код более читаемым и сокращая количество кода, которое нужно написать и поддерживать.
✅ Java библиотека #java
Часто возникает необходимость объединять несколько строк в одну, используя определенный разделитель.
До Java 8 это обычно делалось с помощью цикла и объекта StringBuilder. С появлением метода String.join, эта задача стала намного проще и лаконичнее.
Использование метода String.join значительно упрощает задачу объединения строк с разделителем, делая код более читаемым и сокращая количество кода, которое нужно написать и поддерживать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥5❤3
DJL — это удобная библиотека Java для Machine Learning.
Библиотека предоставляет целый набор разных моделей, можно легко подобрать нужную модель по заданным параметрам
Конечно же есть возможность создать свою модель и сохранить её для дальнейшего использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤5🔥3
Media is too big
VIEW IN TELEGRAM
Хотите интегрировать Яндекс.Диск в свой Java-проект? В этом видео я покажу, как быстро и просто работать с API Яндекс.Диска, получить OAuth токен, а также загружать файлы в облачное хранилище. Мы разберем ключевые моменты, сравним API с аналогами и напишем полноценный Java-код для работы с Yandex Disk.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍5❤2
CopyOnWriteArrayList
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
✅ Java библиотека #java
CopyOnWriteArrayList — это реализация интерфейса List, оптимизированная для работы в многопоточном окружении.
Основное отличие этой коллекции в том, что все модифицирующие операции (добавление, удаление элементов) не изменяют существующий массив, а создают его копию.
Это позволяет избежать необходимости синхронизации для потокобезопасного чтения.
CopyOnWriteArrayList полезен в ситуациях, когда чтение данных происходит гораздо чаще, чем изменение. Например, при реализации общего кэша в многопоточном приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🎉4❤2🔥1
Цель Jetty — поддержка веб-протоколов (HTTP/1, HTTP/2, HTTP/3, WebSocket и т. д.) в больших объемах с низкой задержкой, что обеспечивает максимальную производительность при сохранении простоты использования и совместимости с многолетней разработкой сервлетов.
Jetty — это современный полностью асинхронный веб-сервер, который может быть легко встроен в приложения, оставаясь при этом надежным средством для развертывания веб-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤2
Media is too big
VIEW IN TELEGRAM
Выпуск 6. Запуск и отладка приложения ГРН под IntelliJ IDEA CE.
В этом выпуске мы узнаем, как можно запускать наше приложение и как делать отладку/debug из под IntelliJ IDEA community Edition.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2
DatagramPacket
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
✅ Java библиотека #java
DatagramPacket — это класс в Java, который представляет собой пакет датаграмм. Датаграммы используются для реализации бессоединительной службы доставки пакетов. Это означает, что каждый пакет отправляется независимо от других пакетов, и нет гарантии, что они будут доставлены в том же порядке, в котором были отправлены.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4☃2🔥2
ProGuard — это open-source минификатор, оптимизатор и обфускатор байткода Java.
Какие действия выполняет ProGuard?
— обнаруживает и удаляет неиспользуемые классы, поля, методы и атрибуты
— оптимизирует байткод и удаляет неиспользуемые инструкции
— переименовывает оставшиеся классы, поля и методы, используя короткие имена
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤4🔥2
Интерфейс Delayed
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
✅ Java библиотека #java
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤2
brew tap endava/tap
brew install cats
CATS автоматически генерирует тесты, запускает их и сообщает о результатах, требуя минимальных усилий по написанию кода. Тесты также не требуют обслуживания.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥2
FileChannel
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
✅ Java библиотека #java
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤7🔥4
Пару месяцев назад вышла стабильная версия open-source проекта TornadoVM 1.0 для запуска Java на гетерогенном оборудовании: CPU, GPU и FPGA.
TornadoVM — это плагин к OpenJDK и другим дистрибутивам JDK (например, GraalVM, Red Hat Mandrel, Amazon Corretto, Microsoft OpenJDK, Azul Zulu), который позволяет разработчикам автоматически запускать программы Java на гетерогенном оборудовании. TornadoVM нацелен на устройства, совместимые с OpenCL, PTX и Level-Zero, которые включают в себя многоядерные процессоры, выделенные графические процессоры (Intel, NVIDIA, AMD), интегрированные графические процессоры (Intel HD Graphics и ARM Mali) и FPGA (Intel и Xilinx).
В версии TornadoVM 1.0 появился новый API для размещения объектов вне кучи и коллекций массивов, улучшенная обработка внутреннего байт-кода, поддержка большего количества математических операций в OpenCL/PTX/SPIR-V, 16 векторных типов данных для
float/double/int, поддержка драйвера Mesa Rusticl OpenCL, улучшение порядка устройств по умолчанию на основе максимального размера потока, обновление программы установки, а также значительно доработана документация проекта.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥2