🔹 Что это
— Java Flight Recorder (JFR) — низкоуровневый инструмент для профилирования, встроенный в JVM начиная с Java 11.
— Java Mission Control (JMC) — утилита для визуального анализа и работы с результатами JFR-записей.
🔹 Возможности
— Сбор информации о производительности с минимальным overhead.
— Анализ CPU, памяти, событий GC, блокировок, Thread dumps и других внутренних событий JVM.
— Отслеживание аллокаций, задержек, пауз и узких мест в приложении.
— Подходит для использования как в разработке, так и в продакшене.
🔹 Как использовать
1. Запустите приложение с параметрами, активирующими запись:
java -XX:StartFlightRecording=duration=60s,filename=recording.jfr ...
2. После завершения записи, откройте файл .jfr в JMC.
3. Используйте интерфейс для анализа производительности и поиска узких мест.
🔹 Преимущества
— Нативная поддержка в JVM.
— Низкий overhead (подходит для продакшн-сценариев).
— Не требует внешних агентов или дополнительных библиотек.
— Удобный интерфейс для анализа.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📺 Что посмотреть — Java Tutorial for Beginners
📅 Опубликовано: около 2 лет назад
👀 Просмотров: более 3 миллионов
🎓 Автор: Naveen Reddy (Telusko)
🕒 Длительность: 12,5 часов
Чем интересно:
— Подходит для начинающих, объясняет все основы Java простым и понятным языком.
— Покрывает ключевые темы: переменные, циклы, массивы, ООП, исключения и многое другое.
— Преподаватель делится практическими примерами и советами из реального опыта.
— Видео отлично подходит, чтобы освежить знания.
🔗 Смотреть
🐸 Библиотека джависта #буст
📅 Опубликовано: около 2 лет назад
👀 Просмотров: более 3 миллионов
🎓 Автор: Naveen Reddy (Telusko)
🕒 Длительность: 12,5 часов
Чем интересно:
— Подходит для начинающих, объясняет все основы Java простым и понятным языком.
— Покрывает ключевые темы: переменные, циклы, массивы, ООП, исключения и многое другое.
— Преподаватель делится практическими примерами и советами из реального опыта.
— Видео отлично подходит, чтобы освежить знания.
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы сталкивались с неочевидной утечкой памяти, странным поведением GC или приложением, которое «ест 8 ГБ, а делает ничего» — делитесь в комментариях.
Пора перестать страдать молча. Давайте объединим комьюнити и будем разбирать реальные кейсы:
— Что утекло?
— Где GC не справился?
— Почему слабая ссылка вдруг стала сильной?
— Чем Map хуже WeakHashMap (а может — наоборот)?
P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Собрали топовые материалы, которые наши подписчики сохраняют чаще всего.
Эту подборку мы будем регулярно пополнять, поэтому сохраняйте тонну пользы, чтобы не потерять!
1. Quartz уже не тот? Современные альтернативы для планирования задач
2. Как JVM обрабатывает исключения
3. @Subselect в Hibernate: разберись с хитростями
4. JOOQ против Hibernate: что выбрать для вашего проекта?
5. Инструменты командной строки, которые стоит знать
6. «Распределенные системы: принципы и парадигмы»
7. Что такое @Transactional в Spring?
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы не могли пройти мимо нашумевшего тренда и попросили ИИ перенести наш любимый язык программирования во вселенную Миядзаки.
Как вам образ? Расскажите в комментариях ↓
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Spring ищет бины с помощью
Сканирование начинается с пакета,
Если бин не помечен аннотацией, его можно зарегистрировать вручную через
Please open Telegram to view this post
VIEW IN TELEGRAM
Java постоянно развивается: новые фичи появляются, сборки становятся умнее, а в продакшене до сих пор царит Spring Boot. Да, он мощный, универсальный, но медленный старт, гигантский оверхед, живёт по инерции.
Quarkus и Micronaut стартуют быстрее, кушают меньше памяти, заточены под облака и serverless. Всё вроде бы красиво — но если что-то сломается, вместо «гугли решение» услышишь «пиши ишью на GitHub, может через полгода поправят».
— Стоит ли бросать Spring Boot в 2025 ради Quarkus или Micronaut?
— Или проверенная тяжеловесная классика всё ещё надёжнее молодой крови?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Как работает память в JVM
Глубокий анализ архитектуры памяти Java Virtual Machine и особенностей управления памятью. Уникальная информация для улучшения производительности ваших Java-приложений.
🔹 Ускорение Spring REST API на 200%
Spring удобен, но его абстракции могут замедлять работу API. Рассмотрите способы избавиться от ненужных накладных расходов и значительно увеличить производительность API.
🔹 Caffeine анализ кода
Статья описывает Caffeine с использованием алгоритма TinyLFU. Рассматриваются структуры данных, методы и старение данных для поддержания актуальности кэша.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Forwarded from Библиотека задач по Java | тесты, код, задания
Что вернёт следующий SQL-запрос?
Anonymous Quiz
33%
Всех сотрудников компании с зарплатой выше средней по отделу
14%
Зарплаты сотрудников, которые выше средней зарплаты среди всех отделов
40%
Зарплаты сотрудников, которые выше средней по их отделу
11%
Среднюю зарплату по каждому отделу
3%
Прибыль компании и id каждого отдела
Java-разработчик в Маркет — от 180 000 до 350 000 ₽, офис (Москва, Санкт-Петербург, Нижний Новгород)
Java-разработчик — от 100 000 ₽, гибрид (Москва)
Руководитель команды разработки / Team Lead (Java/Kotlin) — от 300 000 ₽, гибрид (Москва)
Java разработчик — до 500 000 ₽, гибрид (Москва, Санкт-Петербург)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 Поддержка JDK 17-27 — новая версия требует более современных версий JDK.
🔹 Удаление устаревших API — больше не поддерживаются аннотации из javax.annotation и javax.inject.
🔹 Миграция на Jakarta EE 11 — обновления в работе с сервлетами и WebSocket.
🔹 Усовершенствования для Kotlin — поддержка Kotlin 2.x и отказ от старых решений.
🔹 Изменения в HttpHeaders API — улучшена обработка заголовков с учетом их нечувствительности к регистру.
Please open Telegram to view this post
VIEW IN TELEGRAM
JMH — это фреймворк для точного микробенчмаркинга в Java. Он предназначен для создания тестов производительности, которые помогают анализировать, как различные изменения в коде влияют на его эффективность.
Фичи: измерение времени выполнения на уровне микроопераций, поддержка сложных случаев оптимизации JVM, вывод подробной статистики, возможность настройки параметров теста, точные результаты без влияния JVM-оптимизаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 IT Breaking Memes — 30 000 ₽ за самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🏆 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
Пример:
Реальная новость: «Гугл создала модель для общения с дельфинами».
Смешная альтернатива: «Нейросеть от Гугл обрабатывает видеопоток с камеры в свинарнике. ИИ следит, сколько свинья находится возле кормушки, не отталкивают ли ее собратья. Недокормленных докармливают, а переевшие пропускают следующую кормешку».
📅 Сроки: с 29 апреля по 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Ждем ваших новостей!
Please open Telegram to view this post
VIEW IN TELEGRAM
Запутались в легаси, где каждый метод — это мини-роман? Попробуйте этот промпт — он поможет расчистить завалы и вдохнуть в код новую жизнь:
📝 Промпт:
Refactor the following code to improve readability, maintainability, and adherence to clean code principles. Suggest design improvements and explain the rationale behind each change.
// Вставьте закостыленный код сюда
— Добавьте
Identify code smells if you want to spot bad practices like long methods, god objects, or excessive dependencies
— Добавьте
Recommend design patterns if the codebase cries for structure
— Добавьте Suggest
breaking into smaller modules or services
если ощущаете, что монолит трещит по швамPlease open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 Как настроить CORS в Spring Boot
Когда фронт и бэк живут на разных доменах — CORS становится головной болью. Но Spring Boot даёт достаточно способов это настроить — от простых аннотаций до централизованной фильтрации.
1️⃣ Минимальная настройка — через @CrossOrigin
Если нужно открыть доступ только к одному контроллеру или методу:
Удобно для быстрого прототипа, но неудобно для масштабируемого решения.
2️⃣ Глобальная настройка через WebMvcConfigurer
Если CORS нужен везде, лучше использовать конфигурационный класс:
Даёт полный контроль. Можно задать разные правила для разных путей.
3️⃣ Настройка CORS через application.yml (Spring Cloud Gateway)
Если вы используете Gateway, настройка может быть ещё проще:
Подходит, если CORS должен работать до попадания запроса в конкретный микросервис.
4️⃣ CORS + безопасность
Если CORS работает «через раз», возможно, его блокирует Spring Security. Добавьте .cors() в конфигурацию:
5️⃣ Тестирование CORS
✅ Проверьте через curl:
Ответ должен содержать заголовки:
📌 Не оставляйте allowedOrigins("*") в проде. Это дыра в безопасности. Нужно чётко указывать домены.
💬 Как вы обычно настраиваете CORS в своих микросервисах?
🐸 Библиотека джависта #буст
Когда фронт и бэк живут на разных доменах — CORS становится головной болью. Но Spring Boot даёт достаточно способов это настроить — от простых аннотаций до централизованной фильтрации.
Если нужно открыть доступ только к одному контроллеру или методу:
@CrossOrigin(origins = "https://example.com")
@RestController
public class ApiController {
@GetMapping("/data")
public String getData() {
return "OK";
}
}
Удобно для быстрого прототипа, но неудобно для масштабируемого решения.
Если CORS нужен везде, лучше использовать конфигурационный класс:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("https://example.com")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
}
Даёт полный контроль. Можно задать разные правила для разных путей.
Если вы используете Gateway, настройка может быть ещё проще:
spring:
cloud:
gateway:
globalcors:
corsConfigurations:
'[/**]':
allowedOrigins: "https://example.com"
allowedMethods:
- GET
- POST
allowedHeaders: "*"
Подходит, если CORS должен работать до попадания запроса в конкретный микросервис.
Если CORS работает «через раз», возможно, его блокирует Spring Security. Добавьте .cors() в конфигурацию:
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.cors() // 👈 Без этого CORS не заработает
.and()
.authorizeHttpRequests(auth -> auth.anyRequest().permitAll());
return http.build();
}
}
✅ Проверьте через curl:
curl -H "Origin: https://example.com" \
-H "Access-Control-Request-Method: GET" \
-X OPTIONS http://localhost:8080/data -v
Ответ должен содержать заголовки:
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Methods: GET
Please open Telegram to view this post
VIEW IN TELEGRAM