Java библиотека
31.5K subscribers
2.37K photos
90 videos
10 files
2.18K links
Книги, статьи, мемы и многое другое для Java программиста!

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
FrontendConf 2025 - крупнейшая в России профессиональная конференция фронтенд‑разработчиков пройдет 20–21 октября 2025, Москва, Кластер «Ломоносов».

Что будет на конференции:
• 1000+ представителей российского фронтенд‑сообщества;
• 2 дня насыщенной программы: 55 докладов в 8 ключевых секциях (AI во фронтенде, Архитектура, Производительность, Инженерный UX, Культура команд, FrontOps и др.);
• Практические форматы: 2 воркшопа, 4 круглых стола, 6 кейсов‑факапов;
• Ламповые дискуссии и дебаты - живой обмен мнениями;
• After‑party для неформального нетворкинга и обмена опытом.

Почему это выгодно вашей компании:
• Конкретные решения, которые можно внедрить за недели, а не месяцы;
• Меньше проблем в продакшне и быстрее релизы - экономия времени и денег;
• Приоритетные предложения, план внедрения и оценка эффекта;
• Повышение экспертизы команды и удержание ключевых специалистов.

Присоединяйтесь 20–21 октября - два дня концентрированного опыта, полезных контактов и конкретных инструментов для развития фронтенд‑команд.
Подготовьте короткую просьбу руководителю и Забронируйте билет - сайт конференции.

#реклама
О рекламодателе
🔥43👍3
🖥 filelize-java — легковесная Java-база данных для упрощения записи и чтения данных в человекочитаемые файлы, такие как JSON!

🌟 Она позволяет сохранять объекты в одном или нескольких файлах с помощью простого API, требующего всего одной строки кода. Это особенно полезно для настройки тестовых данных и сценариев, когда полноценная база данных не требуется. Библиотека поддерживает интеграцию с Spring Boot и может использоваться для быстрого создания и управления данными в тестах или простых приложениях.

🖥 Github

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥54👍4
👩‍💻 Магия IntelliJ IDEA: Extract Method

Хотите быстро превратить кусок кода в чистый и переиспользуемый метод? Используйте хоткей — IDEA сама всё сделает за пару кликов.

Хоткей: Ctrl + Alt + M (Cmd + Alt + M на macOS)

🟢Что делает

Мгновенно выносит выделенный код в отдельный метод. IDEA сама предложит имя, подставит параметры и аккуратно заменит фрагмент вызовом нового метода.

🟢Зачем это нужно

— Убирает «простыню» кода из метода.
— Улучшает читаемость и переиспользуемость.
— Ускоряет рефакторинг: не нужно руками писать сигнатуру, копировать аргументы и т.д.

🟢Как использовать

— Выделите блок кода.
— Нажмите Ctrl + Alt + M.
— Проверьте, как IDEA сама создала метод.
— При желании поменяйте имя и модификатор доступа.

🔥 Работает не только с Java-кодом, но и в Kotlin, Groovy и даже в тестах.

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥207👍6
Оптимизация создания бинов

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

Для этого можно применить аннотацию @Lazy:
@Component
public class Component {

@Lazy
@Autowired
private Service service;
}


🟢Когда использовать:

— В приложениях с большим количеством зависимостей
— Для сервисов, которые вызываются нечасто (например, отчёты или аналитика)
— В микросервисах для оптимизации потребления ресурсов
— При работе с тяжёлыми или сложными конфигурациями

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥4
👩‍💻 Java API Tip — Integer.valueOf() и кеширование

Знаешь ли ты, что Integer.valueOf(int) не всегда создаёт новый объект?

📦 Значения в диапазоне от -128 до 127 кэшируются!
Это значит, что:


Integer a = Integer.valueOf(100);
Integer b = Integer.valueOf(100);
System.out.println(a == b); // 👉 true (один и тот же объект)


Но:


Integer x = Integer.valueOf(200);
Integer y = Integer.valueOf(200);
System.out.println(x == y); // 👉 false (два разных объекта)


🔍 Почему так?

Чтобы повысить производительность и сэкономить память, Java автоматически кеширует часто используемые значения.

🛠 Кстати, ты можешь изменить границу кеша через JVM-опцию:


-XX:AutoBoxCacheMax=512


📌 Полезно, если у тебя в системе часто используются числа вне стандартного диапазона.

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥6
⚡️Готовиться к собеседованиям стало проще!

Женя Янченко, java-dev и руководитель разработки, cделала конспекты самой популярной книги по архитектуре систем — «Высоконагруженные приложения» Мартина Клеппмана (книга с кабанчиком).

Где главы обзорные — даёт суть.
Про репликацию, шардирование, транзакции — разбирает подробно, со схемами и примерами.

▶️ ЧИТАТЬ КОНСПЕКТ КАБАНЧИКА

В канале Женя разбирает и другие технические темы, которые могут пригодиться на собесе:

🟡 CAP-теорема простыми словами
🟡 Индексы: как один запрос сломал расчет
🟡 Подробно про Кафку c реальной историей проблемы

А как же алгоритмы? Они тоже есть!
Женя объявила челлендж — решить 300 задач за год 😱
Каждый месяц делает отчеты и разборы популярных задач:

🟡Разбор паттерна "Два указателя"

Истории из опыта, рекомендации и ответы на вопросы:

🟡Как произвести крутое впечатление на техсобесе
🟡«Ты не оправдываешь ожиданий» и что с этим делать
🟡Как я боролась с неуверенностью в себе
🟡«Просто нажми кнопку» или история одного релиза

📝 и ещё 100+ полезных технических и жизненных постов.

Подписывайтесь, чтобы не потерять полезный канал
➡️ @jane_yanchenko
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3👍2
Forwarded from Java Guru 🤓
Что будет результатом кода?
👍4🍾4😁3🔥2
Forwarded from Java Guru 🤓
Что будет результатом кода?
Anonymous Quiz
45%
0
6%
12
33%
48
13%
Ошибка компиляции
3%
null
😁14👍6🔥4🍾31
🔥Не упустите шанс прокачать свой скилл и решать проблемы с производительностью на опережение!

Думаете, что знаете об оптимизации PostgreSQL всё? Проверим.

Приглашаем разработчиков и администраторов БД на интенсивный практикум, где мы не будем говорить об очевидных вещах.

1 октября в 20:00 технический директор 1С-Старт Дмитрий Кириллов разберет "по косточкам" оптимизацию PostgreSQL на открытом практическом уроке "Неочевидные оптимизации PostgreSQL на основе его исходного кода".

👨‍💻 Разработчики, научитесь писать запросы, учитывая скрытые механизмы планировщика, и использовать индексы максимально эффективно
👨‍💻Администраторы БД, поймете, какие параметры конфигурации реально влияют на производительность, а какие можно не трогать
👨‍💻Архитекторы систем, сможете лучше проектировать структуру БД и прогнозировать ее масштабирование на основе «внутренней логики» PostgreSQL

А в подарок - три мини-курса для практической работы с SQL от OTUS.

Бесплатно по предварительной записи - практикум для тех, кто хочет докопаться до сути: https://tglink.io/6816bef9c91f

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFKAQV8L
5👍2🔥2
🖥Xpipe — это кроссплатформенное решение для интеграции данных, ориентированное на простоту настройки и использования!

🌟 Оно позволяет подключать и синхронизировать данные между различными системами и форматами, такими как базы данных, файловые системы и API. Xpipe предоставляет графический интерфейс для настройки потоков данных, что делает его доступным для пользователей без глубоких технических знаний.

🔐 Лицензия: Apache-2.0

🖥 Github

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2
🔍Тестовое собеседование с Java-разработчиком из МТС уже завтра

1 октября (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🔥2
👩‍💻 Магия IntelliJ IDEA: Postfix Completion

Хотите писать код быстрее и без лишнего копипаста? Используйте Postfix Completion — умные сокращения, которые превращают выражения в полноценный код.

🟢Что делает

— Превращает набранное выражение в готовую конструкцию (например, myVar.notnull → if (myVar != null) {...})
— Работает для условий, циклов, логирования, null-check и многого другого
— Доступна для Java, Kotlin и многих языков

🟢Зачем это нужно

— Экономит время
— Снижает вероятность синтаксических ошибок
— Ускоряет рутинные действия (особенно null-checks)

🟢Как использовать

— Пишите выражение, затем ставите точку и выбираете суффикс (например, .if, .for, .notnull)
— IDEA сама развернёт шаблон в готовый код
— Список доступных суффиксов: Settings → Editor → General → Postfix Completion

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍13🔥8
Иногда кажется, что читаешь книги в параллельной вселенной. Увлекся редким фэнтези-сериалом или зависаешь на мемуарах — и поговорить об этом не с кем.

В COMMOK ты точно наткнешься на человека, который тоже застрял на той самой главе или в восторге с того же автора. Здесь разговоры о книгах живые, искренние и без снобизма. А может, вы найдете друзей сразу по нескольким интересам?

COMMOK — это место, где хобби и увлечения превращаются в настоящие встречи и новые истории. Устанавливай приложение и захабься!

App Store: https://apps.apple.com/ru/app/id1671122965
Google Play: https://play.google.com/store/apps/details?id=com.saleskit.commok

erid:2VtzqxCBL7n
Реклама. Запорожец Сергей Александрович
ИНН 662313192669
👍32🔥2
Что такое BeanPostProcessor в Spring?

BeanPostProcessor — это интерфейс из Spring Framework, который позволяет вмешиваться в процесс создания и инициализации бинов в Spring контейнере. Он предоставляет два основных метода, которые вызываются на разных этапах жизненного цикла бина:

🟡 postProcessBeforeInitialization(Object bean, String beanName) - вызывается до того, как бин будет инициализирован (до вызова метода @PostConstruct или InitializingBean#afterPropertiesSet).
🟡 postProcessAfterInitialization(Object bean, String beanName) - вызывается после инициализации бина (после завершения всех инициализационных методов).

Зачем нужен BeanPostProcessor?

Он используется для дополнительной обработки и кастомизации бинов после их создания, но до передачи клиентскому коду. Примеры:

- Добавление проксирования бинов (например, для AOP или транзакций).
- Валидация или изменение свойств бинов.
- Логирование жизненного цикла.
- Добавление кастомных аннотаций.
- Обработка маркерных интерфейсов.

Как это работает?

1️⃣ Spring сканирует контекст на наличие бинов, реализующих интерфейс BeanPostProcessor.
2️⃣ Если такие бины найдены, они применяются ко всем бинам в приложении.
3️⃣ Методы postProcessBeforeInitialization и postProcessAfterInitialization вызываются для каждого бина, который создаёт Spring.

@Component
public class CustomBeanPostProcessor implements BeanPostProcessor {

@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) {
System.out.println("Before Initialization: " + beanName);
return bean;
}

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) {
System.out.println("After Initialization: " + beanName);
return bean;
}
}

Результат: Вывод сообщений о каждом бине до и после инициализации.

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍4🔥4
Как вы решаете вопрос с покрытием?
Почти в каждом проекте висит задача: поднять покрытие до 70%.
И почти в каждой команде никто не хочет этим заниматься.

Explyt – AI-плагин для Java и Kotlin разработчиков, который снимает эту боль.
Он генерирует юнит-тесты прямо в IDE: по коду, по runtime-трассам, по спекам. И делает это так, как будто реально вник в проект.

📌 Что умеет:
- создаёт осмысленные тесты для Java и Kotlin-кода
- поддерживает JUnit 4/5, TestNG, кастомные фреймворки
- превращает execution trace в автотесты
- предлагает фиксы, если сгенерированный тест падает
- есть режим агента, где AI сам меняет код, запускает тесты и ищет ошибки

📦 Плагин доступен:
- через JetBrains Marketplace
- или напрямую с сайта разработчика

🎁 30 дней бесплатного доступа – просто пользуйтесь.
👉 Попробовать на своём проекте
👍4🔥3
Forwarded from Java Guru 🤓
Что добавить в код, чтобы в REST API роли и аутентификация работали корректно
👍5🔥31
Forwarded from Java Guru 🤓
👍4🔥21
👩‍💻 Java Streams: Основные методы для чистого и эффективного кода!

Java Streams предлагают множество методов для упрощения манипуляций с данными и повышения читаемости кода.
Вот краткое руководство с примерами:

Освойте эти методы, чтобы писать более чистый и эффективный код на Java! 💡

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥742
⁉️ Хотите стать тимлидом или уже им работаете, но чувствуете синдром самозванца?

На курсе «Team Lead» от OTUS вы получите системные знания и практику, которые помогут уверенно управлять командой, правильно делегировать задачи, решать конфликты и мотивировать людей. Программа составлена практикующими экспертами, которые ежедневно решают задачи лидов в IT-компаниях.

Вы сможете отработать ошибки на модели команды — без риска для реального проекта, научитесь говорить на одном языке с бизнесом и прокачаете навыки, которые ценят работодатели.

➡️ Запишитесь на курс уже сегодня, чтобы активировать скидку на обучение по промокоду TL10 (актуален до 28.09): https://vk.cc/cQ1lvH

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍32🔥2
Как настроить аутентификацию с OAuth2

В Spring Boot 3 интеграция с OAuth2 стала ещё проще благодаря улучшенной поддержке социальных логинов. Рассмотрим, как настроить аутентификацию через Google с использованием Spring Security 6.

1️⃣ Создание проекта

Используйте Spring Initializr для создания проекта с следующими зависимостями:

— Spring Web
— Spring Security
— OAuth2 Client

Или добавьте их вручную в pom.xml:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>


2️⃣Получение OAuth2-учётных данных Google

1. Перейдите в Google Cloud Console
2. Создайте новый проект
3. Перейдите в раздел APIs & Services → Credentials
4. Нажмите Create Credentials → OAuth 2.0 Client IDs
5. Укажите тип приложения Web application
6. Добавьте Authorized redirect URI
7. Сохраните и получите Client ID и Client Secret

3️⃣Конфигурация application.yml

Добавьте следующие настройки в src/main/resources/application.yml:
spring:
security:
oauth2:
client:
registration:
google:
client-id: YOUR_CLIENT_ID
client-secret: YOUR_CLIENT_SECRET
scope:
- email
- profile
redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
authorization-grant-type: authorization_code
client-name: Google
provider:
google:
authorization-uri: https://accounts.google.com/o/oauth2/v2/auth
token-uri: https://oauth2.googleapis.com/token
user-info-uri: https://www.googleapis.com/oauth2/v3/userinfo
user-name-attribute: sub


Замените YOUR_CLIENT_ID и YOUR_CLIENT_SECRET на полученные значения.

4️⃣Конфигурация безопасности

Создайте класс конфигурации:
@Configuration
public class SecurityConfig {

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/login", "/error").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.loginPage("/login")
.defaultSuccessUrl("/dashboard", true);
return http.build();
}
}

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥4
Бесплатный карьерный форум для студентов IT-направлений 😍

На "Найти IT" ты сможешь найти работу, пообщаться с работадателями, показать свое резюме и пет-проекты, узнать всё о стажировках и вакансиях!

Кто будет: Альфа-Банк, Сбер, Ozon Tech, МТС, X5 Tech — больше 30 компаний, которые хантят студентов ИТ-специальностей

Плюсы для карьеры:
— нетворкинг с 2000+ участниками
— HR, тимлиды, разрабы и другие представители компаний, которые ответят на все твои вопросы
— выступления спикеров, только в офлайне
— 15+ призов в розыгрыше от FutureToday

Где и когда:DAA EXPO — 11 октября, 12:00–17:00 👇

Зарегистрироваться: https://vk.cc/cQ0Fft?erid=2W5zFH1VhJg
2🔥1