Java Learning
21.3K subscribers
1.52K photos
1 video
3 files
881 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
⁉️ Монолит или микросервисы? Руководство для архитекторов, которые ценят свои нервы

Приглашаем на открытый урок.

🗓 17 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Software Architect».

📌 Что будет на вебинаре:
✔️ Как не попасть в ловушку “модных” микросервисов;
✔️ Разбор признаков, что пора выходить из монолита;
✔️ Архитектурные паттерны для перехода к микросервисам (Strangler Fig, BFF, Self-contained systems);
✔️ Организационные и технические риски — что точно пойдёт не так и как это предсказать;
✔️ Роль DevOps, CI/CD и мониторинга в выборе архитектуры.

👥 Для кого этот вебинар:
- Разработчиков Backend и FullStack, участвующих в архитектурных решениях;
- Архитекторов ПО, которые планируют масштабирование приложений;
- Тимлидов и DevOps-инженеров, выстраивающих процесс разработки и доставки;
- Технических менеджеров, выбирающих стратегию развития продукта.

🎯 После вебинара вы:
- Получите пошаговое руководство по выбору архитектуры под ваш проект;
- Научитесь оценивать реальные риски и стоимость микросервисов;
- Поймёте, как внедрять архитектурные изменения без сбоев и хаоса;
- Увидите, как принимать взвешенные архитектурные решения, сохраняя технический контроль и производительность команды.

💡 Идеальный вебинар для тех, кто хочет перестать "архитектурить на ощущениях" и начать действовать стратегически.

🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - SoftwareArc_06

👉 Регистрация на вебинар: https://clck.ru/3MYnu9

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

OpenCSV — это библиотека Java с открытым исходным кодом, предназначенная для работы с CSV-файлами. Она обеспечивает простой и удобный интерфейс для чтения, записи, обработки и анализа CSV-данных. OpenCSV является одной из самых популярных библиотек для работы с CSV в Java, благодаря своей простоте использования, производительности и широкому набору функций.

https://opencsv.sourceforge.net/

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 10
OptaPlanner

OptaPlanner — это фреймворк с открытым исходным кодом для решения задач планирования на Java. Он позволяет вам легко создавать высокопроизводительные алгоритмы планирования, не тратя время на рутинные задачи кодирования.

https://github.com/apache/incubator-kie-optaplanner

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 11
👩‍💻 JPQL: как писать запросы, которые не сломают Hibernate

Узнайте, как писать JPQL-запросы, которые ускорят Hibernate в 5 раз, избегая критических ошибок, тормозящих 80% проектов!

Приглашаем на открытый урок

🗓 19 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».

🎯 О чём поговорим:
✔️- JPQL vs SQL: почему ваши запросы ломают Hibernate и как их переписать так, чтобы БД не «умирала» под нагрузкой.
✔️ Тайные ловушки: антипаттерны JPQL, генерирующие N+1 SELECT и тормозящие приложение, и методы их поиска в коде.
✔️ Оптимизация на максимум: как использовать JOIN FETCH, подзапросы и кэширование в JPQL для мгновенного ускорения Hibernate.

👥 Кому будет интересно:
Java-разработчикам, использующим Hibernate, системным архитекторам и инженерам по оптимизации производительности.

💡В результате урока вы:
Научитесь писать эффективные JPQL-запросы, избегать распространённых ошибок и значительно ускорять работу Hibernate-приложений.

🎁 Дарим промокод, который дает скидку на обучение - JAVA_06

🔗 Ссылка на регистрацию: https://clck.ru/3MZrFX

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
June 11
➡️ Использование метода Objects::isNull для удобной проверки на null

Начиная с Java 7, был добавлен метод Objects.isNull(), который позволяет более читаемо проверять объекты на null. Это полезно для улучшения читаемости кода, особенно когда нужно часто проверять переменные на null в сложных конструкциях.

• Objects.isNull() помогает сделать код более выразительным и упрощает проверку объектов, избегая громоздких условных операторов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 11
➡️ Использование метода Collectors.filtering() для фильтрации элементов при сборе в коллекцию

Начиная с Java 9, метод Collectors.filtering() позволяет фильтровать элементы потока перед их сбором в коллекцию. Это полезно, когда нужно собирать только определённые элементы, не прибегая к дополнительным фильтрациям на этапе потока.

• Collectors.filtering() делает код более лаконичным, предоставляя встроенный способ фильтрации элементов в процессе их коллекционирования.

Этот метод позволяет объединять фильтрацию и сбор данных в одну операцию.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 13
Please open Telegram to view this post
VIEW IN TELEGRAM
June 15
🗣️ Одинарные и двойные кавычки

Что ты ожидаешь в результате выполнения этого кода?

public class Haha {
public static void main(String args[]) {
System.out.print("H" + "a");
System.out.print('H' + 'a');
}
}


💬 Казалось бы, строка должна возвращать «HaHa», но на самом деле это будет «Ha169».

➡️ Двойные кавычки обрабатывают символы как строки, но одинарные кавычки ведут себя иначе. Они преобразуют символьные операнды ('H' и 'a') в целые значения посредством расширения примитивных типов — получается 169.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 16
June 17
June 17
✔️ Гибкость интерфейсов

ℹ️ В Java есть возможность использовать интерфейсы как контракт для взаимодействия между классами.

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

🗣️ Это особенно полезно при развитии существующих проектов, где можно легко добавлять новые функциональные возможности.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 17
➡️ Работа с коллекциями с помощью Streams

Java Streams позволяют легко и эффективно работать с коллекциями данных, такими как списки, используя функциональный подход.

👀 Этот простой пример показывает, как с помощью Streams можно легко фильтровать и преобразовывать данные в коллекциях, делая код более лаконичным и понятным.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 18
June 18
🟢 Локальные переменные в лямбда-выражениях

Java позволяет использовать локальные переменные внутри лямбда-выражений, но с одним важным ограничением: переменные должны быть эффективно финальными (effectively final).

❗️Это означает, что после их инициализации переменные не могут быть изменены.

🗣️ Использование локальных переменных в лямбда-выражениях может быть очень полезным для передачи дополнительных данных в лямбда-выражения

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 18
📚 Продвинутые методы архивации: LZ77/78

Приглашаем на открытый урок.

🗓 25 июня в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Алгоритмы и структуры данных».

✔️ На этом вебинаре мы завершим создание архиватора, добавив алгоритм LZ77/78. Разберем принцип словарного сжатия, механизм поиска повторяющихся последовательностей и формат их кодирования.

✔️ Имплементируем выбранный алгоритм и проведем финальное сравнение всех трех методов сжатия (RLE, Huffman, LZ77/78). Определим, какие алгоритмы лучше работают для различных типов файлов и почему.

Завершающее практическое занятие для тех, кто хочет освоить продвинутые алгоритмы и увидеть их применение в реальном проекте.​​​​​​​​​​​​​​​​

🎁 Всем участникам вебинара дарим промокод, который дает скидку на обучение - Algo5

👉 Регистрация на вебинар: https://clck.ru/3Mh97q

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
June 19
➡️ QueryDSL — гибкий фреймворк для создания типобезопасных запросов в Java

QueryDSL — это библиотека, которая позволяет строить типобезопасные SQL-запросы прямо на языке Java. Она поддерживает SQL, JPA, MongoDB и другие системы баз данных. Благодаря QueryDSL, разработчики могут писать сложные запросы без явного использования SQL, что значительно улучшает читаемость и поддержку кода.

🗣 QueryDSL — идеальный инструмент для тех, кто хочет писать сложные запросы, используя сильную типизацию и избегая SQL-инъекций.

🔗 Ссылочка на доку

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
June 19
🤯 🤯 🤯 Параллелизм в многопоточном Java-коде создаёт новые проблемы в тестировании, а баги остаются незамеченными?

⚡️ Приглашаем на открытый вебинар «Юнит тесты для многопоточного кода»
24 июня в 20:00 МСК.

На вебинаре мы разберём:

✔️ Как обнаружить гонки, дедлоки и нестабильность в многопоточном коде.
✔️ Как использовать argumentCaptor и spy для проверки взаимодействия потоков.
✔️ Эмуляцию задержек и таймингов с помощью AdditionalAnswers.

🦾 После урока вы будете уверенно писать стабильные unit-тесты для многопоточного кода, выявлять скрытые баги и улучшать качество тестирования.

Открытый урок проходит в преддверии старта курса «Java Developer. Advanced».
Все участники получат скидку на обучение.

🔗 Регистрируйтесь прямо сейчас: https://clck.ru/3Mi63d

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
June 20
June 22
Ответ:
Anonymous Quiz
5%
6
17%
15
53%
123
25%
Error
June 22