Интерфейс Delayed
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
Используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.
Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.
Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
1👍15❤3🔥2
📚 Пройди тест на знание Java и получи доступ к 🌿 🌿 открытым урокам по Spring
🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Разработчик на Spring Framework» от OTUS необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.
📊 -Курс рассчитан на профессионалов с практическим опытом работы на Java.
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework. - Дадим 18 практических работ. Процесс review сдаваемой работы максимально приближен к тому, каким он мог быть на реальном проекте. Помимо этого, мы попросим вас сдать дипломную работу , каких скучных записанных занятий, только живые онлайн-лекции, интересные практические задачи и развернутая обратная связь от лучших экспертов ниши. 📅 Старт группы уже 30 сентября 2024г . Доступна рассрочка на обучение.
➡️ НАЧАТЬ ТЕСТИРОВАНИЕ
🕗 Два открытых урока можно посмотреть без регистрации и оценить формат обучения. Для доступа ко всем открытым урокам из курса «Разработчик на Spring Framework» от OTUS необходимо пройти входное тестирование: ответить на 21 вопрос и уложиться в тайминг.
📊 -
- Мы будем 5 месяцев погружать вас в теорию и практику Spring Framework.
➡️ НАЧАТЬ ТЕСТИРОВАНИЕ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6❤4🔥3
brew tap endava/tap
brew install cats
CATS автоматически генерирует тесты, запускает их и сообщает о результатах, требуя минимальных усилий по написанию кода. Тесты также не требуют обслуживания.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍15❤4🔥4😁3
Хотите уверенно проектировать гибкие, масштабируемые и надежные системы, используя современные архитектурные практики?
Присоединяйтесь к онлайн-курсу «Software Architect», где за 4 месяца под руководством практикующих экспертов вы разберёте:
✔️ актуальные тактики по работе с атрибутами качества архитектуры: доступность, отказоустойчивость, безопасность и многое другое;
✔️ основные паттерны и стили архитектуры, их плюсы, минусы и подводные камни;
✔️ технологические домены, включая бекенд, BigData, мобильную разработку, фронтенд и хранилища данных.
👨💻🛠👨🏻💻 Программа разработана для архитекторов, разработчиков и тимлидов.
Старт группы уже 30 августа. Доступна рассрочка и 🎁10 % скидка по промокоду otus10 до 31.08 включительно⏱!
➡️ Пройдите тест прямо сейчас, чтобы чтобы активировать скидку и получить доступ ко всем открытым урокам курса: https://vk.cc/czZZ81
Присоединяйтесь к онлайн-курсу «Software Architect», где за 4 месяца под руководством практикующих экспертов вы разберёте:
✔️ актуальные тактики по работе с атрибутами качества архитектуры: доступность, отказоустойчивость, безопасность и многое другое;
✔️ основные паттерны и стили архитектуры, их плюсы, минусы и подводные камни;
✔️ технологические домены, включая бекенд, BigData, мобильную разработку, фронтенд и хранилища данных.
👨💻🛠👨🏻💻 Программа разработана для архитекторов, разработчиков и тимлидов.
Старт группы уже 30 августа. Доступна рассрочка и 🎁
➡️ Пройдите тест прямо сейчас, чтобы чтобы активировать скидку и получить доступ ко всем открытым урокам курса: https://vk.cc/czZZ81
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1❤4👍3🔥2
FileChannel
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
FileChannel используется для работы с файлами на низкоуровневом вводе-выводе.
Основные возможности класса FileChannel:
— Чтение данных из файла и запись данных в файл.
— Работа с файлом по смещениям. Можно получить текущее смещение в файле, переместить указатель чтения/записи в нужное смещение.
— Маппинг файлов в память. Файл можно отобразить в память и работать с его содержимым как с массивом байтов.
— Блокировка частей файла. Позволяет защитить критические участки файла от одновременной записи.
— Асинхронная работа с файлами.
FileChannel эффективнее потокового ввода-вывода, т. к. избавляет от накладных расходов на создание объектов и буферизацию.
Используется в приложениях, где нужна высокая производительность работы с файлами.
1❤12👍10🔥3❤🔥2
🎯 Хотите стать Java-разработчиком, но думайте, что изучение основ программирования — это скучно?
Только не в нашем формате! Ждём вас на онлайн-курсе «Специализация Java-разработчик». Только живые вебинары, вы освоите самые востребованные инструменты и лучшие практики.
Ознакомится с курсом можно на бесплатном открытом уроке «Введение в Java Collections: обзор интерфейсов и их имплементаций».
📌 Урок пройдет 11 сентября в 20:00 мск.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cA1RNg
Только не в нашем формате! Ждём вас на онлайн-курсе «Специализация Java-разработчик». Только живые вебинары, вы освоите самые востребованные инструменты и лучшие практики.
Ознакомится с курсом можно на бесплатном открытом уроке «Введение в Java Collections: обзор интерфейсов и их имплементаций».
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍3🔥2
Пару месяцев назад вышла стабильная версия 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, улучшение порядка устройств по умолчанию на основе максимального размера потока, обновление программы установки, а также значительно доработана документация проекта.@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8❤4👍2
Хотите узнать, как легко и эффективно работать с потоковыми данными с помощью Alpakka?
Всего за пару часов вы разберете работу с потоковыми данными, узнаете, что такое «продьюсер» и «консьюмер», и научитесь применять эти знания в различных областях, где данные отсылаются и принимаются через Kafka.
Присоединяйтесь к открытому вебинару «Потоковая обработка данных с помощью Alpakka» 5 сентября в 20:00 мск!
Урок будет полезен всем, кто работает с потоковыми данными.
Спикер Валентин Шилин — старший программист/аналитик данных в зарубежной компании.
Встречаемся в преддверии старта курса «Apache Kafka». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cA1W4A
Всего за пару часов вы разберете работу с потоковыми данными, узнаете, что такое «продьюсер» и «консьюмер», и научитесь применять эти знания в различных областях, где данные отсылаются и принимаются через Kafka.
Присоединяйтесь к открытому вебинару «Потоковая обработка данных с помощью Alpakka» 5 сентября в 20:00 мск!
Урок будет полезен всем, кто работает с потоковыми данными.
Спикер Валентин Шилин — старший программист/аналитик данных в зарубежной компании.
Встречаемся в преддверии старта курса «Apache Kafka». Все участники вебинара получат специальную цену на обучение!
Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cA1W4A
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
1❤3👍2🔥2😁1
Инкапсуляция
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
Инкапсуляция — это принцип ООП, который заключается в сокрытии внутреннего представления класса от внешнего мира. Для этого используются модификаторы доступа: private, protected, public.
Обычно поля класса делаются private или protected, а методы — public. Это позволяет скрыть реализацию класса и предоставить к ней контролируемый доступ через public методы.
При запуске этой программы на выходе мы получим:
John 0
1❤19👍8🔥3☃2
Apache Ignite 3.0 — платформа для распределенного кэширования и вычислений
Недавно вышла стабильная версия Apache Ignite 3.0 — это open-source платформа, предоставляющая возможности для распределенного кэширования и вычислений в реальном времени.
Apache Ignite предлагает разработчикам мощный набор инструментов для работы с большими данными. Платформа позволяет организовать распределенное хранилище данных и обрабатывать их с высокой производительностью, используя CPU и GPU.
В версии Apache Ignite 3.0 были реализованы следующие улучшения:
Новый API для асинхронных операций и улучшенная поддержка транзакций.
Оптимизация работы с распределенными кешами и поддержка новых типов данных.
Интеграция с популярными инструментами для анализа данных, такими как Apache Spark и Apache Flink.
Улучшенная документация и обновленный интерфейс для мониторинга и администрирования.
🖥 GitHub
🟡 Доки
@javalib #java
Недавно вышла стабильная версия Apache Ignite 3.0 — это open-source платформа, предоставляющая возможности для распределенного кэширования и вычислений в реальном времени.
Apache Ignite предлагает разработчикам мощный набор инструментов для работы с большими данными. Платформа позволяет организовать распределенное хранилище данных и обрабатывать их с высокой производительностью, используя CPU и GPU.
В версии Apache Ignite 3.0 были реализованы следующие улучшения:
Новый API для асинхронных операций и улучшенная поддержка транзакций.
Оптимизация работы с распределенными кешами и поддержка новых типов данных.
Интеграция с популярными инструментами для анализа данных, такими как Apache Spark и Apache Flink.
Улучшенная документация и обновленный интерфейс для мониторинга и администрирования.
🖥 GitHub
🟡 Доки
@javalib #java
1👍9❤4🔥3😁2
Вы пишете код для обслуживания банковских операций и определяете в нем три класса:
🔹 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❤8🎉3
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.13-SNAPSHOT</version>
</plugin>
JaCoCo — это довольно известная open-source библиотека Java для покрытия кода тестами;
библиотека была создана командой EclEmma.
@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥3
Что такое «абстракция»?
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
Абстрагирование – это способ выделить набор общих характеристик объекта, исключая из рассмотрения частные и незначимые. Соответственно, абстракция – это набор всех таких характеристик.
Представьте, что водитель едет в автомобиле по оживлённому участку движения. Понятно, что в этот момент он не будет задумываться о химическом составе краски автомобиля, особенностях взаимодействия шестерёнок в коробке передач или влияния формы кузова на скорость (разве что, автомобиль стоит в глухой пробке и водителю абсолютно нечем заняться). Однако, руль, педали, указатель поворота он будет использовать регулярно.
👍16❤10
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤11👍7🔥4🎄1
Более чем за десять лет работы со Spring Framework и Enterprise Java автор успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности.
Всё это из-за того, что магия фреймворков иногда ломается, и делает это очень неочевидно.
Please open Telegram to view this post
VIEW IN TELEGRAM
VK Видео
Когда ломается магия фреймворков...
Более чем за десять лет работы со Spring Framework и Enterprise Java я успел полюбить Spring Framework, возненавидеть и в итоге пересмотреть свои подходы к работе с ним. То же самое касается работы с рефлексией в целом и работы с АОП в частности. Всё это…
👍11❤5🔥3