Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Чашечка Java»

Чашечка Java
7.5K
862
704
6
9.3K
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Подписчики
Всего
8 370
Сегодня
+2
Просмотров на пост
Всего
644
ER
Общий
7.7%
Суточный
5.54%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 7 516 постов
Смотреть все посты
Пост от 08.10.2026 08:00
1
0
0
Пост от 07.10.2026 13:10
273
0
0
Почему нагрузочный тест в одной JVM может скрыть задержки GC

Если генератор запросов работает в той же JVM, что и тестируемый сервис, пауза GC останавливает оба компонента. Пока сервис не отвечает, генератор тоже не создаёт часть запросов. В измерения не попадает нагрузка, которая пришла бы от независимого клиента.

Исследователи сравнили режимы SPECjbb2015 на OpenJDK 27: с генератором внутри JVM сервиса и в отдельном процессе. Для сборщиков с заметными паузами значения p99 существенно различались; у ZGC такой разницы не наблюдали.

Даже учёт запланированного времени отправки не восстанавливает запросы, которые генератор не смог создать. При проверке хвоста задержек полезно вынести его в отдельную JVM и сопоставить времена запросов с логами GC.

Методика и экспериментальные результаты
👍 1
Пост от 06.10.2026 18:20
452
0
4
Почему JNI-ссылки могут привести к падению JVM

JNI отдаёт нативному коду дескриптор Java-объекта. Локальная ссылка, созданная в native-методе, привязана к текущему потоку и освобождается при завершении вызова. Сохранить её в статической переменной для следующего вызова — значит оставить недействительный дескриптор.

Для кэширования класса или callback-объекта нужна NewGlobalRef(). Такая ссылка удерживает объект от сборки мусора, пока нативный код не вызовет DeleteGlobalRef(). Поэтому место освобождения стоит определить сразу.

Отдельная ошибка — передавать JNIEnv* другому потоку. Нативный поток должен получить собственное окружение через подключение к JVM. Для диагностики в HotSpot есть флаг -Xcheck:jni.

Разбор ошибок с примерами C++
❤‍🔥 1
Пост от 06.10.2026 13:10
524
0
1
Spring переводит патч-релизы на единый Patch Thursday

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

Новое окно — четверг после третьего понедельника месяца. Первый регулярный выпуск по этой схеме намечен на 22 октября 2026 года. Команда сохраняет привычный день публикации Spring Boot в Maven Central.

Для сопровождения сервисов это повод пересмотреть календарь обновлений и интеграционных проверок зависимостей. Одновременно Spring обновил раздел security: рекомендации по уязвимостям можно искать по CVE, важности и проекту.

Подробности нового графика
❤ 2
Пост от 02.10.2026 08:07
844
0
3
JDK 26: измеряем затраты CPU на сборку мусора

JDK 26 добавляет MemoryMXBean.getTotalGcCpuTime(): метод возвращает суммарное процессорное время отдельных потоков GC. Так можно сравнивать размеры кучи на своей нагрузке по затратам сборщика, а не только по длительности пауз.

Паузы уже не показывают всю цену. В приведённой нагрузке G1 выполнял 79% работы GC конкурентно с приложением. ZGC переносит почти всю тяжёлую работу в конкурентные фазы и держит паузы меньше миллисекунды, но вычисления не исчезают.

В разборе метрики её проверяют через -Xlog:cpu на DaCapo и Spring PetClinic. Она учитывает явную работу GC, но не служебный код барьеров в приложении и влияние GC на кэши CPU. Для выбора размера кучи сопоставляйте её с пропускной способностью и задержками.
😁 2
❤ 1
🔥 1
Пост от 01.10.2026 18:21
420
0
2
Как измерить экономию памяти от компактных заголовков в Java 27

В Java 27 HotSpot по умолчанию сокращает заголовок объекта с 12 до 8 байт. Но из-за выравнивания по 8 байт объект с одним полем int остался 16-байтным, а с двумя уменьшился с 24 до 16 байт.

Воспроизводимый эксперимент сравнивает две JVM с одинаковыми настройками кучи и G1. Java-агент вызывает getObjectSize() и измеряет только сам объект, без объектов по ссылкам. Во втором запуске компактные заголовки отключаются флагом -XX:-UseCompactObjectHeaders.

Перед уменьшением лимита кучи стоит проверить формы объектов, которые преобладают в сервисе, а затем сравнить живую кучу, нагрузку на GC, задержки и память процесса. Сокращение заголовка само по себе ещё не доказывает экономию ресурсов приложения.
👍 1
Пост от 01.10.2026 13:14
474
0
5
Spring Boot 4 и BoxLang: как сохранить CFML-шаблоны при миграции

BoxLang Spring Boot Starter позволяет оставить представления на CFML, языке шаблонов ColdFusion, пока контроллеры и другие части приложения переносятся на Spring. В Maven-проект добавляется стартер версии 1.0.0, а свойство boxlang.suffix=.cfm переключает его обработчик представлений с файлов .bxm на .cfm.

Контроллер остаётся обычным для Spring MVC: возвращает логическое имя представления, а атрибуты Model автоматически становятся переменными CFML. В шаблонах продолжают работать cfoutput, условия, циклы и подключение общих блоков.

Это даёт путь для поэтапной миграции без одновременной переписи всех представлений. В готовом примере показаны настройка проекта, передача данных из контроллера и запуск шаблонов на Spring Boot 4.
👍 1
Смотреть все посты