gram news
Аватар канала Библиотека джависта | Java, Spring, Maven, Hibernate

Библиотека джависта | Java, Spring, Maven, Hibernate

@javaproglib

Все самое полезное для Java-разработчика в одном канале. Учиться у нас: clc.to/AATM8w Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4

22,100подписчиков

Открыть канал

Последние посты

  • Библиотека джависта | Java, Spring, Maven, Hibernate

    23 сент., 09:28

    ⚙️ В чем разница между балансировщиками нагрузки, обратными прокси и API-шлюзами?1️⃣ Балансировщик нагрузкиРаспределяет клиентские запросы между серверами, выбирая их по алгоритму, чтобы равномерно распределять нагрузку, избегать перегрузок и обеспечивать стабильную работу системы.Он получает запрос, перенаправляет его на сервер, принимает ответ и отправляет его обратно клиенту.Это увеличивает пропускную способность, снижает задержки и оптимизирует использование ресурсов.2️⃣ Обратные проксиРаботают как посредники между клиентами и серверами, обрабатывая запросы и передавая данные, скрывая серверы и повышая их безопасность.Они обеспечивают контроль за сетевым трафиком, снижая риски атак и угроз.Дополнительно, они могут кэшировать контент для уменьшения нагрузки на сервер, сжимать данные для ускорения передачи и управлять SSL/TLS-шифрованием, разгружая веб-серверы.3️⃣ API-шлюзыРаботают как единая точка входа для всех API-запросов, направляя их к нужным микросервисам и собирая результаты.Они упрощают взаимодействие клиентов с разными сервисами, добавляют защиту, применяют правила, переводят между веб-протоколами и агрегируют данные.Идеально подходят для работы с микросервисной архитектурой.══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    22 сент., 07:05

    🔥 Java 27 вышла — и там есть что обсудить15 сентября вышел JDK 27. Среди заметных изменений:— G1 GC теперь используется по умолчанию во всех окружениях — Compact Object Headers включены по умолчанию — потенциально меньше heap footprint — TLS 1.3 получил hybrid key exchange для постквантовой криптографии — Structured Concurrency — уже седьмой preview — Lazy Constants — третий preview — Vector API и Primitive Types in Patterns продолжают развиватьсяБольшая часть новых возможностей всё ещё в preview/incubator, поэтому в production их пока стоит воспринимать соответствующе.🔗 Источник══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    21 сент., 12:04

    Сохраняйте шпаргалку по OAuth══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
    1,400файл3Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    20 сент., 12:04

    🧠 Почему a.age() - b.age() может сломать сортировкуЧасто встречается такой Comparator:list.sort((a, b) -> a.age() - b.age());Проблема — переполнение int.🔴 Например:Integer.MIN_VALUE - 1 // Integer.MAX_VALUEИз-за этого компаратор может вернуть неправильный знак, и сортировка нарушит порядок.🔴 Надёжнее:list.sort(Comparator.comparingInt(User::age));🔴 А если нужна дополнительная сортировка:
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    19 сент., 11:03

    🤯 Collectors.teeing — две агрегации в одном collectНужно получить средний возраст и количество пользователей?🟡 Вместо ручной логики можно объединить два коллектора:record Stats(double avg, long count) {}Stats stats = users.stream().collect( Collectors.teeing( Collectors.averagingInt(User::age), Collectors.counting(), Stats::new ) );🟡 teeing передаёт элементы двум коллекторам, а затем объединяет их результаты вашей функцией.Полезно, когда нужно собрать сразу несколько независимых метрик.
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    18 сент., 08:05

    ══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    17 сент., 12:49

    ⚡️⚡️Joker 2026: что происходит с профессией разработчикаИндустрия разработки проходит через серьезный переломный момент. Меняются не только инструменты и фреймворки, но и привычный подход к работе.Поэтому в этом сезоне меняется и Joker: первый день традиционно посвящен Java — Core Java, рантайму и работе на уровне железа. А во второй день будем обсуждать, как прямо сейчас меняется сама инженерная практика.В программе — Context Engineering, команды из людей и ИИ-агентов, Self-Evolving Agents, новые подходы к архитектуре и работе с моделями, а также вопросы ответственности и роли эксперта.Собрали главные темы второго дня в карточках.🌟С промокодом: javaproglib персональные билеты дешевлеПолное расписание и билеты — на сайте.
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
    1,7705322Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    17 сент., 08:32

    🧠 Что выведет код?❤️ [1, 2, 3, 4] 🔥 [2, 4] 👍 [1, 3] 👾 ConcurrentModificationException👇 Правильный ответ (нажми, чтобы прочитать):[1, 3] — removeIf удаляет элементы, которые подходят под условие:чётные 2 и 4 исчезают, остаются 1 и 3.Метод предназначен для удаления элементов по условию без ручного изменения списка внутри for-each.⚠️ Ловушка:Если написать так:var list = List.of(1, 2, 3, 4);
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
    1,5803751Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    16 сент., 09:04

    🛠 computeIfAbsent — кэш и группировка без ifНужно положить значение в список по ключу. Обычно пишут так:if (!map.containsKey(key)) { map.put(key, new ArrayList<>()); } map.get(key).add(value);С computeIfAbsent короче:map.computeIfAbsent(key, k -> new ArrayList<>()).add(value);Если ключ отсутствует или связан с null, будет создан список. Затем в него добавится значение.Удобно для:— группировки данных; — создания коллекций по ключу; — простых кэшей.
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    15 сент., 09:36

    Как правильно определять границы сервисов в микросервисной архитектуре?Один из недооценённых скиллов в разработке — это умение провести правильную границу между сервисами. Большинство «распределённых монолитов», которые мы встречаем в продакшене, рождаются именно здесь.🟡 Что такое Service BoundaryЭто контракт на три вещи:— за что сервис отвечает; — какими данными он владеет; — как он общается с соседями.Представь компанию: HR не лезет в финансы, а склад не занимается зарплатами. Так же должны работать твои сервисы.🟡 4 принципа, которые работают1. Business Capability FirstРежь по бизнес-функциям, а не по техническим слоям. OrderService, PaymentService, UserService, потому что именно так бизнес думает о системе.
    1,6108331Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    14 сент., 19:40изменён

    😭 Как не потратить недельный лимит AI-кодинга за три дня?Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.🔘 Поговорим о том:— когда дорогая модель действительно нужна, а когда хватит дешёвой; — сколько стоит один прогон и куда уходят токены; — какие задачи можно отдавать субагентам; — как настроить маршрутизацию моделей; — что проверять в AI-коде перед merge.✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.⬇️ 17 сентября, 19:00 МСК ⬇️ 1,5 часа · бесплатно ⬇️ Арсений Харланов и Олег Лайок💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    14 сент., 11:31

    🤔 Вопрос с собеседованияЧто выведет код?❤️ — 1 🔥 — 2 👍 — ошибка компиляции👇 Правильный ответ (нажми, чтобы прочитать):2return в try вычисляет значение, но перед фактическим выходом из метода выполняется finally. return 2 из finally заменяет результат из try.⚠️ На практике так делать не стоит: return в finally может скрыть исключение или изменить ожидаемый результат метода.══════ Навигация ══════ Вакансии • Задачи • Собесы
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
    1,8203854Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    14 сент., 09:04

    А вы уже забрали свой подарок ко Дню программиста?Мы в Tproger вместе с нашими друзьями собрали целую коробку подарков к вашему профессиональному празднику. Переходите по ссылке, трясите коробку и забирайте свой презент: https://tprg.ru/3j14
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    13 сент., 12:04

    ══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    13 сент., 10:33

    🌸 Вселенная намекает: пора уже начать этот курсС 14 сентября цены в Proglib Academy вырастут на 20% 👀Так что если курс давно ждёт своего часа — лучше не откладывать ещё на месяц 😏📍 Выбрать курс
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    12 сент., 09:00

    🤯 Objects.requireNonNullElse вместо тернарникаКогда нужно подставить значение, если переменная null:// было String result = (name != null) ? name : "Гость";// стало String result = Objects.requireNonNullElse(name, "Гость");🔴 А если значение по умолчанию дорого вычислять — используйте ленивый вариант:Objects.requireNonNullElseGet( name, () -> loadDefault() );🔴 Главное различие:requireNonNullElse — дефолтное значение уже вычислено.
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    12 сент., 08:02

    🌞 Готовим вебинар про AI в разработке и хотим сделать его максимально полезнымЧто реально хочется разобрать? Где чаще всего застреваете? Что пробовали, но так и не получилось нормально внедрить?🤩 Пишите вопросы в комментариях — самые залайканные разберём на вебинаре в первую очередь.Задавайте всё, что давно хотелось спросить 📍══════ Навигация ══════ Вакансии • Задачи • Собесы🐸 Библиотека джависта
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    11 сент., 11:38

    🥊 Spring Boot 4 vs Quarkus — что выбрать в 2026?Оба подходят для микросервисов на Java, но оптимизируют разные вещи.🔴 Quarkus → больше работы переносит на build time; → быстрый старт и низкое потребление памяти; → особенно интересен для serverless и native image.🔴 Spring Boot 4 → огромная экосистема Spring; → привычный стек и высокая скорость разработки; → больше возможностей подключить готовые решения без смены подхода.По производительности нельзя просто объявить победителя: важны workload, JVM/native mode, настройки и конкретные бенчмарки.А что выберете для нового микросервиса?❤️ Spring Boot 4 👍 Quarkus
    Иллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, HibernateИллюстрация к посту канала Библиотека джависта | Java, Spring, Maven, Hibernate
    1,89051127Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    10 сент., 11:03

    🛠 groupingBy: собрать Map из списка🟡 Нужно разложить пользователей по городам?Map<String, List<User>> byCity = users.stream() .collect(Collectors.groupingBy(User::city));🟡 Нужны не пользователи, а количество?Map<String, Long> counts = users.stream() .collect(Collectors.groupingBy( User::city, Collectors.counting() ));🟡 А дальше можно комбинировать коллекторы:Collectors.mapping(...) Collectors.averagingInt(...) Collectors.summingInt(…)
    2,090511Открыть в Telegram
  • Библиотека джависта | Java, Spring, Maven, Hibernate

    9 сент., 12:12изменён

    🔗 Что такое pinning виртуального потокаВиртуальный поток обычно отцепляется от carrier thread, когда блокируется на операции ожидания. Но в некоторых ситуациях он может остаться привязанным к платформенному потоку — это называется pinning.Классические причины: 🔘 блокирующая операция внутри synchronized; 🔘 выполнение native-кода через JNI.Почему это важно? Пока виртуальный поток pinned, carrier thread не может нормально использоваться для выполнения других виртуальных потоков.🤔 А что с synchronized?Начиная с Java 24, JVM изменила реализацию мониторов так, чтобы блокировка внутри synchronized больше не приводила к pinning виртуального потока в прежних сценариях.Поэтому старый совет «везде заменить synchronized на ReentrantLock» уже неактуален.