Java библиотека
31.6K subscribers
2.3K photos
77 videos
8 files
2.03K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Летняя распродажа в Слёрме: -50% на все видеокурсы из списка

С 17 по 31 июля в Слёрме на все видеокурсы из этого списка скидка 50% по промокоду LETO2024.

До старта бизнес-сезона осталось меньше половины лета. Пока на вас не свалилось 500 новых проектов, можно спокойно разобраться в новом инструменте, подходе или методике.

Время до сентября — лучшее, чтобы прокачать свой стек 😉

Доступ к видеоурокам сохранится на 2 года
Вы можете спланировать учёбу на год вперёд, купить дешевле и учиться в любое время
Рассрочка действует и на акционные цены

Выбирайте курсы и пойдём учиться!

⚡️ В КАТАЛОГ КУРСОВ ⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
🖥 AssertJ — отличная библиотека Java для проверки в тестах

<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.25.1</version>
<scope>test</scope>
</dependency>


AssertJ — это Java-библиотека, которая предоставляет богатый набор assertions и полезных сообщений об ошибках, улучшает читаемость кода и разработана с упором на простоту.

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍187🔥3
Неуязвимого кода не существует. Абсолютно защищённых данных – тоже.
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.


Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»

Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.

Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.

Будет интересно и Rust-разработчикам и тем, кто использует другие языки.

23 июля, 19:00 МСК
Бесплатно


➡️ Записаться на событие: https://vk.cc/cyx7QU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥2
Класс LocalDateTime

Класс LocalDateTime используется для работы с датой и временем без учета часового пояса.
Он появился в Java 8 в пакете java.time и является частью новой date/time API, которая пришла на смену устаревшим классам Date и Calendar.

Основные возможности класса LocalDateTime:
— Хранение даты и времени с точностью до наносекунд.
— Получение различных компонентов даты/времени (год, месяц, день недели и т. д.).
— Выполнение операций сложения и вычитания дат и интервалов.
— Сравнение и сортировка дат по времени.
— Форматирование и парсинг строк по заданному шаблону.
👍244🔥3
🖥 Deep Java Library — это высокоуровневая open-source библиотека Java для ML и Deep Learning

DJL — это удобная библиотека машинного обучения для языка Java, особенностью которой является зоопарк моделей (Model Zoo), позволяющий получить готовую модель по описываемым параметрам из списка доступных моделей. Также имеется возможность создать свою модель, сохранить на диск и загрузить для дальнейшего использования.

🖥 GitHub
🟡 Доки
🟡 Примеры использования
🟡 Обзор DJL

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍136🔥4
Абстракция в Java

Абстракция — это способность выделять существенные характеристики объекта и упускать несущественные.
Абстракция позволяет сосредоточиться на важных свойствах и поведении объекта, скрыв детали реализации.

В Java абстракция реализуется с помощью абстрактных классов и интерфейсов.

Абстрактный класс содержит абстрактные методы без реализации. Подклассы обязаны реализовать эти методы.
Интерфейс задает «контракт», описывая поведение классов без деталей реализации. Классы реализуют интерфейс.

Реализация абстракции требует тщательного анализа предметной области и выделения общих свойств объектов.
👍247🎉4🔥2
☕️ Начните карьеру Java-разработчика с зарплатой от 90 000 ₽ всего за 6 месяцев!

Курс «Java-разработчик» от Академии «Синергия»:

От новичка до профессионала без технического бэкграунда
6 реальных проектов в портфолио, включая онлайн-магазин и игру «Тетрис»
Обучение у экспертов из «Альфа-банка», Visa, Qiwi

Вы освоите:

🖥 Полный стек Java-разработчика
🛠 Spring Framework, SQL, ООП
📊 Работу с большими данными

🎁 Бонусы:

Персональный карьерный консультант
Развитие soft skills для эффективной работы в команде

Гарантия трудоустройства или возврат денег!

Начните свой путь в IT прямо сейчас: https://epic.st/gayIl?erid=2Vtzqw58ytm

#Java_разработка #обучение_программированию #карьера_в_IT

Реклама. Университет «Синергия» ИНН 7729152149 erid: 2Vtzqw58ytm
6😁4👍1🔥1
Sorted set

SortedSet — это интерфейс в Java Collection Framework, который предоставляет упорядочение элементов в множестве. Элементы упорядочиваются с помощью их естественного порядка или с помощью компаратора, который обычно предоставляется при создании отсортированного множества.

SortedSet имеет несколько дополнительных операций, которые позволяют использовать упорядочение элементов:
— first() и last() возвращают первый и последний элементы в множестве соответственно.
— headSet(), tailSet() и subSet() возвращают подмножества элементов, которые находятся до, после или между заданными элементами соответственно.

В этом примере мы создаем TreeSet (класс, который реализует SortedSet) и добавляем в него несколько строк. Поскольку строки реализуют интерфейс Comparable, они упорядочиваются в алфавитном порядке. Затем мы используем различные методы SortedSet для получения первого и последнего элементов, а также подмножеств элементов.
👍167🔥4❤‍🔥1
⚡️ Узнайте, как манипулировать байт кодом Java-приложений!

На занятии разберем, как просматривать и читать байт код классов и для чего это может быть нужно. Научитесь создавать утилиты для изменения байт кода существующих классов в runtime. Это знание поможет вам улучшить производительность ваших приложений и решать сложные задачи.

Вебинар будет полезен Java-разработчикам, которые сталкиваются с вопросами производительности приложений.

Встречаемся 1 августа в 20:00 мск.

Спикер — Tech Lead в одном из крупнейших российских банков и кандидат технических наук.

👉 Регистрируйтесь прямо сейчас, чтобы посетить бесплатное занятие: https://vk.cc/cyBau1

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥32
🖥 Helidon — набор библиотек Java для создания микросервисов

Helidon — это набор cloud-native Java-библиотек с открытым исходным кодом для написания микросервисов, работающих с использованием виртуальных потоков Java.
Кстати, Helidon WebServer — первый в мире веб-сервер, полностью основанный на виртуальных потоках.

🖥 GitHub
🟡 Доки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥6👍3
👍 Тест по Java

Проверь насколько хорошо ты знаешь Java и готов освоить Spring!

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cyBJTn

Время прохождения теста ограничено 30 минут, 21 вопрос.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥3
PathIterator

PathIterator — это интерфейс в Java, который позволяет объектам, реализующим интерфейс Shape, возвращать геометрию своей границы, позволяя вызывающему объекту получать путь этой границы по одному сегменту за раз.

Основные возможности PathIterator:

— PathIterator позволяет перебирать сегменты пути объекта Shape по одному.
— Для каждого сегмента PathIterator может предоставить информацию о его типе (например, линия, кривая Безье), координатах и других атрибутах.
— PathIterator может использоваться для преобразования пути объекта Shape, например, для его масштабирования, поворота или перемещения.
👍166
This media is not supported in your browser
VIEW IN TELEGRAM
Офер в Яндекс для опытных бэкендеров за два дня

24–25 августа приглашаем бэкендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно решить задачи онлайн до 20 августа и пройти несколько технических секции 24 августа, чтобы уже 25-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться.

Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать.

Узнать подробности и зарегистрироваться.

Реклама. ООО "Яндекс". ИНН 7736207543
👍8😁54🔥4
🖥 Плагин Gradle для анализа зависимостей

plugins {
id("com.autonomousapps.dependency-analysis") version "<<latest_version>>"
}


Это плагин Gradle для JVM-проектов, написанных на Java, Kotlin и т.д.
Предоставляет рекомендации по управлению зависимостями, позволяет обнаруживать неиспользуемые и неправильно используемые зависимости

🖥 GitHub
🟡 Wiki

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥43❤‍🔥3
👩‍💻 Курс для Java-разработчиков, которые хотят профессионального роста.

Пройди тест по Java и проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cyDRXC

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍411
CompletableFuture

CompletableFuture в пакете java.util.concurrent является классом, который предоставляет мощный и гибкий подход к асинхронному программированию. Он позволяет выполнять асинхронные операции и обрабатывать их результаты, комбинировать несколько операций и управлять зависимостями между ними.

Помимо операций, представленных на изображении, CompletableFuture также предоставляет множество других методов для работы с асинхронными операциями, таких как thenApply(), thenCompose(), thenCombine(), exceptionally() и другие, которые позволяют обрабатывать результаты, комбинировать операции, обрабатывать исключения и многое другое. Это делает CompletableFuture мощным инструментом для асинхронного программирования.
🔥18👍103
Selector

Класс Selector используется для организации многоканального неблокирующего ввода-вывода.
Основная идея в том, что Selector позволяет одному потоку следить за состоянием множества каналов (сокетов, файловых каналов) и обрабатывать их события (готовность к чтению/записи).

Возможности Selector:
— Регистрация множества каналов в Selector для мониторинга.
— Проверка готовности зарегистрированных каналов к операциям чтения, записи.
— Извлечение готовых каналов и выполнение операций с ними.
— Отмена регистрации каналов в Selector.

Использование Selector позволяет избежать блокировки на операциях чтения/записи по каналам и эффективно масштабировать приложение для одновременной работы с большим количеством соединений.
Класс часто применяется в сетевых серверах для неблокирующей обработки большого числа клиентских соединений в одном потоке.
👍224
🖥 Fury — быстрый фреймворк Java (существует и для других ЯП) для сериализации на основе JIT и zero-copy

<dependency>
<groupId>org.apache.fury</groupId>
<artifactId>fury-core</artifactId>
<version>0.5.1</version>
</dependency>


Fury позволяет ускорить Java-приложение до 170 раз.

🖥 GitHub
🟡 Доки
🟡 Бенчмарки

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21😁73🔥3