Библиотека Java разработчика
10.8K subscribers
1.14K photos
564 videos
58 files
1.44K links
📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate.


По всем вопросам @evgenycarter

РКН clck.ru/3KoGeP
Download Telegram
Media is too big
VIEW IN TELEGRAM
Java. Префиксное дерево. Основные операции, сохранение в файл, практическое применение.

В данном видео я рассказываю о префиксных деревьях. Разбираем, что из себя представляет префиксное дерево, для чего оно применяется. Изучаем и реализуем основные операции с префиксным деревом на языке программирования Java. Кроме этого я показываю как сохранить дерево в файл и потом загрузить обратно. С помощью этого проверяю, насколько выгодней может быть хранение строк в префиксном дереве на примере автомобильных номеров.

00:00 - Вступление
00:26 - Применение в приложении
01:58 - Построение дерева и операции с ним
06:33 - Построение префиксного дерева на Java
11:22 - Операции с префиксным деревом на Java
16:31 - Сохранение дерева в файл
20:51 - Загрузка дерева из файла
25:32 - Экономия по сравнению со списком
27:12 - Замечание о Null-безопасности
28:26 - Заключение

источник

👉@BookJava
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Принцип инверсии зависимости - SOLID в деталях

Принцип инверсии зависимости гласит: "Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики". В этом ролике я постарался наглядно продемонстрировать применение этого принципа.

В серии роликов «SOLID в деталях» я постараюсь подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.

источник

👉@BookJava
👍2
lfa Backend Stories Meetup #2 🔥

26 июля встречаемся на митапе для бэкенд-разработчиков: эксперты из Альфы и Авито обсудят межсерверное взаимодействие и архитектурные паттерны, которые могут упростить жизнь разработчику.

🔺 Александр Карташов, Senior Java Developer, расскажет про технологии межсервисного взаимодействия на примере проектов Альфа-Банка.

🔺 Василий Рыбин, Java Developer, познакомит с архитектурным паттерном API Gateway.

🔺 Павел Агалецкий, Lead Engineer в Авито, рассмотрит механики валидации контрактов внутренних API и протокол межсервисного взаимодействия в Авито.

🔺 Екатерина Попкова, Java/Kotlin Developer, расскажет, что такое Сага и как его можно реализовать на Camunda Platform 8.

✔️ Зарегистрироваться на митап и узнать больше о программе
👍1
Media is too big
VIEW IN TELEGRAM
Создание аннотации в java [Java Annotations | Reflection api]

Создаем собственные аннотации. Изучаем из чего состоит аннотация, для чего они нужны и как их обрабатывать. Николай Бунис, senior инженер, расскажет вам про основные составляющие аннотации, ее жизненный цикл и область применения. Используя Reflection Api разберемся как создать свою аннотацию и напишем обработчик наших аннотаций.

В качестве примера возьмем всем знакомую ситуацию когда нужно провалидировать поля класса на минимальную и максимальную длину, соответствие email шаблону и тд. Существует 2 основных варианта как это сделать. Первый это писать каждый раз логику валидации для каждого конкретного класса. Ну а второй вариант это сделать обработчик аннотаций и аннотировать поля класса. Таким образом логика будет написана единожды. Именно этот пример мы и будем разбирать в нашем видео.

источник

👉@BookJava
👍6
Тимлид в команду разработки на Java

Гибридный формат в городах РФ, Сербии, Казахстана, Армении, Беларуси.

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

Ищем опытного тимлида в команду разработки на Java, который поможет спроектировать и реализовать новые компоненты системы, будет руководить командой, нанимать новых инженеров и развивать их.

Наш стек: Java 11, Spring Boot, Reactor, HTTP и gRPC API, Kotlin, PostgreSQL.

Мы ждем, что вы:
- разрабатывали на Java больше трех лет;
- пишете эффективный и понятный код;
- управляли командой разработки; нанимали людей и знаете, как правильно развивать разработчиков;
- можете вести за собой младших участников команды, делиться с ними знаниями и опытом;
- знаете, как устроены веб-сервисы;
- работали с реляционными и нереляционными базами данных и понимаете их устройство, *nix-подобными ОС.
- знаете популярные Java-библиотеки и фреймворки (Spring Boot, jUnit, Netty, Reactor);

Условия:
- сильная команда, с которой можно расти;
- зарплата на уровне рынка и выше;
- премии каждые полгода для всех, кто успешно прошёл ревью;
- расширенная программа ДМС: оплата 80% стоимости ДМС для супругов и детей;
- гибкий график работы.

Откликнуться: https://goo.su/5inhyN или в ТГ: @Karm_Anna
💩12👍4👎1
Как прочитать криптографический ключ?

Для чтения криптографического ключа необходимо использовать классы Java Cryptography Architecture (JCA). Пример кода для чтения криптографического ключа из файла вида PKCS#8 с помощью этих классов может выглядеть следующим образом:

// Загружаем публичный ключ из файла
FileInputStream fis = new FileInputStream("public.pem");
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
byte[] keyBytes = new byte[dis.available()];
dis.readFully(keyBytes);
dis.close();

// Преобразуем байты в объект PublicKey
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey publicKey = kf.generatePublic(spec);


// Используем ключ для выполнения криптографических операций

👉@BookJava
👍4
Media is too big
VIEW IN TELEGRAM
Java. Об Iterator и Iterable c примерами

В данном видео объясняется что такое паттерн Iterator и интерфейс Iterable в языке программирования Java. На примерах показывается для чего нужен Iterator и как его использовать. Рассматривается так же вопрос удаления и вставки элементов в LinkedList за константное время.

GitHub

источник

👉@BookJava
👍5🔥3
Java

Что такое главный метод? Что такое public static void main? Что за PSVM?
Что такое статический модификатор? Как работает static поле, метод, класс?
Метод hashCode: что делает? Как переопределить? Чем отличается от equals?
Ключевые слова this и super: зачем нужны? Чем отличаются?
Какой порядок инициализации в Java?
Как работает кеширование в пуле чисел? 💾 Java Integer Pool
final переменные
Чем отличается final метод от обычного?
Зачем нужен final класс в Java?
Модификатор final: зачем нужен в Java? Как он меняет классы, методы и переменные?

источник

👉@BookJava
👍4🥰1
Как на самом деле работает Java ClassLoader system? (с картинками)

Когда я впервые погрузился в мир загрузчиков классов Java, это было ответом на любопытный вопрос. Популярные источники (Wikipedia, Baeldung, DZone) содержат устаревшую, иногда противоречивую друг другу информацию, и это несоответствие послужило толчком для написания этой статьи — поиска ясности в лабиринте ClassLoader System.

Будучи разработчиком Java, вы наверняка сталкивались с ClassNotFoundException или NoClassDefFoundError — загадочными сообщениями, которые на мгновение останавливают наш процесс разработки. Класс не найден — понятно по названию, но не найден где? Кто и как его ищет, куда доставляет?

https://habr.com/ru/articles/748758/

👉@BookJava
👍4