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
Инкапсуляция
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
✅ Java библиотека #java
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4🔥4
Вы пишете код для обслуживания банковских операций и определяете в нем три класса:
🔹 Person, описывает человека;
🔹 Employee, описывает банковского служащего;
🔹 Client, представляет клиента банка.
Классы Employee и Client будут производными от класса Person, так как оба класса имеют общие поля и методы. Поскольку все объекты будут представлять сотрудника или клиента банка, то напрямую мы от класса Person создавать объекты не будем.
Поэтому имеет смысл сделать его абстрактным, как на картинках.
Тем самым мы придерживаемся принципам ООП — наследование и полиморфизм (переопределяем метод display()). Также есть Инкапсуляция благодаря private полям класса Person.
С помощью всего этого, ваш код более гибкий для изменений, более читабельный и поддерживаемый.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.13-SNAPSHOT</version>
</plugin>
JaCoCo — это довольно известная open-source библиотека Java для покрытия кода тестами;
библиотека была создана командой EclEmma.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥6❤4