Java библиотека (@javalib) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Java библиотека

Java библиотека

@javalib

30.8K подписчиков технологии 💬 Комментарии открыты

Книги, статьи, мемы и многое другое для Java программиста! По сотрудничеству и рекламе: @NadikaKir Канал в перечне РКН: https://vk.cc/cJrT4A Мы на бирже: https://telega.in/c/javalib/ Сообщество VK https://vk.com/javatutorial

Последние публикации

Java библиотека
30.08.2026 09:23 · 👁 619
10 техник оптимизации Java, которые выведут вас на новый уровень Когда Java-приложение внезапно начинает «подвисать», причина почти всегда кроется в прозаичных деталях: неоптимизированных циклах, неудачном выборе коллекций, забытом кэше или агрессивном GC. В этой статье — 10 практических техник, которые помогут выжать максимум из JVM без преждевременной микрооптимизации и шаманства. Только доказавшие свою эффективность подходы, которые реально работают в проде — от финтеха до высоконагруженных API. Читать статью Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
28.08.2026 21:38 · 👁 1.5K
deep tech night ⚡ 5 сентября в онлайн-трансляции — доклады экспертов из Яндекса и международных IT-компаний. В фокусе системы: NPU под LLM, RL-инфраструктура, Physical AI, YDB, большие базы данных и agentic systems. Разберём, что уже работает, где появляются инженерные компромиссы и как команды справляются с новыми требованиями к архитектуре, инфраструктуре и продакшену. 🗒 В прямом эфире можно будет задать вопросы спикерам. Запись отправим зарегистрированным участникам после события. Зарегистрироваться #реклама 16+ deeptechnight.ru О рекламодателе
Java библиотека
28.08.2026 10:39 · 👁 1.8K
🔥 Одна аннотация, которая экономит тонны кода в Spring @RestController - это не просто удобство, а скрытая магия, про которую многие забывают. Под капотом это комбинация @Controller + @ResponseBody . То есть тебе не нужно писать @ResponseBody в каждом методе - всё работает автоматически. • Меньше бойлерплейта • чище код • меньше шансов забыть и получить неожиданный результат Кажется мелочью, но на больших проектах это реально экономит время и нервы Если до сих пор используешь @Controller + @ResponseBody вручную - пора упрощать Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
26.08.2026 05:08 · 👁 2.4K
Вопрос с собеседования Почему в Java интерфейс может иметь методы с реализацией (default)? Это не противоречит идее интерфейса? Ответ: Нет, не противоречит. Они нужны, чтобы можно было добавлять новые методы в интерфейс, не ломая старые классы, которые уже его реализуют. Без default при добавлении нового метода пришлось бы менять весь существующий код. С default-методом интерфейс даёт базовую реализацию метода, которую необязательно переопределять в реализующих классах. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
25.08.2026 14:39 · 👁 2.4K
Знаете, что в Java switch можно использовать как выражение, а не только как отдельный блок кода? Раньше для выбора значения часто писали так: int timeout; switch (env) { case "dev": timeout = 5; break; case "test": timeout = 10; break; case "prod": timeout = 30; break; default: throw new IllegalArgumentException(env); } Работает, но кода много, и легко забыть break. В современном Java можно записать это короче: int timeout = switch (env) { case "dev" -> 5; case "test" -> 10; case "prod" -> 30; default -> throw new IllegalArgumentException(env); }; Такой switch сразу возвращает значение, поэтому его удобно использовать для конфигов, статусов, ролей, типов платежей, уровней логирования и любых фиксированных сценариев. Если логика в ветке сложнее, можно использовать yield: int price = switch (type) { case "vip" -> { int discount = 20; yield basePrice - discount; } default -> basePrice; }; Код получается компактнее, а Java помогает следить, чтобы результат действительно был получен. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
25.08.2026 09:20 · 👁 1.8K
➡️ Автотесты интерфейса и API часто живут в разных наборах инструментов, усложняя настройку и сопровождение. Playwright позволяет объединить эти проверки и сократить количество лишних зависимостей в проекте. 📆 3 сентября в 20:00 МСК на открытом уроке «UI и API тестирование с Java и Playwright» разберём: ➖ устройство Playwright, ➖сравним его с Selenium ➖ напишем первые автотесты на Java. Вы научитесь: 🟥запускать проверки пользовательского интерфейса и API, 🟥структурировать код, 🟥подключать тесты к конвейеру непрерывной интеграции и доставки. Также вы получите критерии, которые помогут оценить целесообразность перехода на Playwright в рабочем проекте. Занятие проходит в преддверии старта курса «Автоматизатор тестирования на Java. Продвинутый уровень». ✔️ Зарегистрируйтесь, чтобы освоить Playwright на практике и расширить набор инструментов автоматизации: https://vk.cc/d0OA0X Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Java библиотека
24.08.2026 20:20 · 👁 2K
В Java лямбда-выражение создаёт экземпляр функционального интерфейса. Во время выполнения этот экземпляр создаётся с помощью класса LambdaMetaFactory Следующий код на Java создаёт объект Function<String, String> Function<String, String> f = s -> s.toUpperCase(); Во время выполнения объект создаётся с помощью кода, аналогичного следующему: @SuppressWarnings("unchecked") void main() throws Throwable { MethodHandles.Lookup lookup; lookup = MethodHandles.lookup(); CallSite callSite; callSite = LambdaMetafactory.metafactory( lookup, "apply", MethodType.methodType(Function.class), MethodType.methodType(Object.class, Object.class), lookup.findStatic( getClass(), "lambda", MethodType.methodType(String.class, String.class) ), MethodType.methodType(String.class, String.class) ); MethodHandle target; target = callSite.getTarget(); Function<String, String> f; f = (Function<String, String>) target.invokeExact(); String msg; msg = f.apply("Hello, World!"); IO.println(msg); } private static String lambda(String s) { return s.toUpperCase(); } При выполнении этот код выведет в консоль HELLO, WORLD! Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
24.08.2026 14:03 · 👁 2K
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой 26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания. В программе два трека — Go и Java, по три доклада в каждом. Трек Go: • «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech • «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK • «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк Трек Java: • «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon • «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк • «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке. Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.
Java библиотека
24.08.2026 12:46 · 👁 2K
Когда и как использовать var? var добавили ещё в Java 10, чтобы облегчить жизнь. Но когда его лучше использовать, а когда стоит быть осторожнее? Когда использовать: 🔵 Когда всё понятно с контекста: если тип переменной очевиден, то можно не писать лишнее var list = new ArrayList<String>(); // Это список, и это сразу видно 🔵 Когда тип слишком громоздкий: если объявление слишком длинное и перегружает код, var упрощает задачу: var map = new HashMap<String, List<Integer>>(); // Чисто и просто 🔵 Короткие методы: в небольших методах с чёткой логикой, var помогает сделать код компактнее и читабельнее. А вот где лучше избегать: 🔵 Если тип неочевиден: когда сложно сразу понять, что это за переменная, лучше явно указать тип, чтобы не путать коллег. var result = process(); // И что за процесс тут? Итог: var — непдохой инструмент, но используйте его с умом. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
23.08.2026 21:33 · 👁 2K
👩‍💻 Java лайфхак: не убивай производительность боксингом Многие даже не замечают, как теряют скорость из-за автoboxing в Stream API. ❌ Плохо (создаются объекты Integer): Stream<Integer> boxed = Stream.of(1, 2, 3, 4, 5); int sum = boxed.reduce(0, Integer::sum); Каждое число → объект → лишняя память + нагрузка на GC ✅ Хорошо (работа с примитивами): int sum = IntStream.of(1, 2, 3, 4, 5).sum(); Без лишних объектов. Быстрее. Чище. Запомни: - IntStream → для int - LongStream → для long - DoubleStream → для double Если работаешь с числами — всегда используй primitive streams. Это мелочь, которая на больших данных превращается в реальную экономию ресурсов. Сохрани, чтобы не писать медленный код. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.