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

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

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

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

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

Другие каналы: @tproger_channels
Подписчики
Всего
8 344
Сегодня
0
Просмотров на пост
Всего
561
ER
Общий
6.73%
Суточный
5.73%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 7 550 постов
Смотреть все посты
Пост от 18.10.2026 13:10
45
0
2
Hibernate Validator 9.2: проверки паролей через аннотации

В первой бете Hibernate Validator 9.2 появились @PasswordStrength, @NotCompromised и @PasswordPolicy. Они позволяют проверять стойкость пароля, наличие в известных утечках и соблюдение набора правил.

В описании релиза есть важная подробность: готового оценщика стойкости и сервиса проверки утечек библиотека не предоставляет. Приложение подключает свои реализации PasswordStrengthEstimator и CompromisedPasswordChecker.

Все три ограничения считают null допустимым значением. Обязательное поле нужно дополнительно пометить @NotNull или @NotBlank.

PasswordPolicy объединяет правила в повторно используемый класс. Каждое нарушенное правило создаёт собственную ошибку валидации, поэтому можно показать, какие требования не выполнены.

Это бета; многие новые API ещё экспериментальные. Примеры подключения сервисов в статье стоит рассматривать как основу для знакомства с интерфейсами.

#java #hibernate
Пост от 18.10.2026 08:04
120
0
2
Почему javac разрешает удалить Integer из Set<Short>

Метод remove(Object) принимает любой объект. Поэтому такой код компилируется, но оставляет элемент в коллекции:

Set<Short> values = new HashSet<>();
values.add((short) 1);
values.remove(1);

В последней строке 1 упаковывается в Integer. В наборе лежит Short, и равными эти объекты не считаются.

В разборе Error Prone показано, как находить подобные ошибки при компиляции. Инструмент подключается к javac и использует сведения о типах: проверка CollectionIncompatibleType замечает несовместимый аргумент коллекции.

Другой пример — YYYY вместо yyyy в формате даты: год недели может отличаться от календарного в конце декабря. Проверка MisusedWeekYear помогает поймать и эту ошибку. Для правил своей команды можно написать BugChecker, а повторяющиеся замены описать Java-шаблонами Refaster.

#java #инструменты
Пост от 17.10.2026 18:20
245
0
2
В JavaDoc предлагают отдельный тег для предупреждений

Совет по использованию метода или важное ограничение легко потерять внутри длинного описания. Для JDK 28 предлагают тег @note, который выделяет такие фрагменты при генерации документации.

В заметке OpenJDK Quality Outreach показаны два варианта: встроенная заметка с вертикальной полосой и блочная с отдельным заголовком. Заголовок можно изменить, например на Caution:

/**
* {@note (header='Caution:') Verify untrusted input!}
*/

Атрибуты kind и id позволяют добавить CSS-класс и идентификатор HTML-элемента. Предложение также предусматривает настройку собственных тегов через параметры javadoc.

Пока это предлагаемые изменения для JDK 28. Пример полезен для знакомства с будущим форматом; использовать его как поддерживаемый синтаксис в документации проекта на JDK 27 рано.

#java #документация
Пост от 17.10.2026 13:10
90
0
1
Что меняется в TLS 1.3 с JDK 27

JDK 27 поддерживает гибридный обмен ключами: группа X25519MLKEM768 объединяет классическую кривую X25519 и постквантовый алгоритм ML-KEM. Она включена по умолчанию, но для её использования поддержку должны иметь обе стороны соединения.

В обзоре Java Security Sean Mullan объясняет и другие изменения TLS. Цепочки сертификатов теперь могут передаваться со сжатием zlib, а редко используемые группы ffdhe6144 и ffdhe8192 убраны из списка по умолчанию.

Для настройки групп есть свойство jdk.tls.namedGroups и метод SSLParameters.setNamedGroups(). Удалённые из стандартного списка группы можно явно включить, если они нужны для совместимости.

При переходе стоит проверить соединения с реальными клиентами и серверами. Поддержка новой группы в JDK ещё не означает, что каждое соединение её согласует: результат зависит и от возможностей второй стороны.

#java #tls
Пост от 17.10.2026 08:02
408
0
5
Lathe: конфигурация редактора из реальной Maven-сборки

Maven собирает проект, а редактор подчёркивает рабочий код как ошибочный. Причина может быть в разных представлениях о module path, зависимостях или обработчиках аннотаций.

Alexey Gavrilov предлагает Java language server Lathe. Расширение Maven записывает параметры компиляции и тестов из самой сборки. Сервер читает этот снимок, чтобы настроить подсказки, диагностику, запуск и отладку. Следующая сборка обновляет конфигурацию.

Для первого захвата после подключения расширения используется:

mvn clean test -Dlathe.capture.only=true

Папку .lathe/ автор рекомендует добавить в .gitignore. Запуски и тесты затем воспроизводятся по сохранённым настройкам без нового вызова Maven.

Нужны Java 21+ и Maven 3.x. Проект пока молодой: наиболее полный клиент есть для Neovim, Emacs работает через Eglot, поддержка VS Code находится в планах.

#java #maven
❤ 1
👍 1
Пост от 16.10.2026 18:20
37
0
1
Как собрать Swing-приложение без JVM у пользователя

Quarkus Desktop помогает собрать приложение на AWT или Swing в нативный исполняемый файл. Расширение регистрирует необходимые классы, ресурсы и JNI-вызовы для GraalVM, а библиотеки JDK размещает рядом с бинарником.

В руководстве автора окно становится CDI-компонентом. Оно получает зависимости через @Inject и открывается по DesktopStartupEvent в потоке обработки событий Swing — EDT.

Долгие операции выполняют в фоновом executor, а обновление интерфейса возвращают на EDT через EdtExecutor. Для окон подходят области @Singleton и @Dependent: обычный CDI-прокси для Swing-компонента создаёт проблемы.

Нативная сборка выполняется под целевую ОС. Для macOS нужны Quarkus 4.0 и GraalVM 25.1 или новее; на Windows arm64 доступен режим JVM. Динамически загружать неизвестные при сборке классы в нативном приложении нельзя.

#java #swing
Пост от 16.10.2026 13:10
515
0
6
Java в браузере: редактировать, компилировать, запускать

В учебном примере удобно поменять строку Java и сразу увидеть результат. Petr Pravda показывает приложение на React и Vite, в котором компиляция выполняется на устройстве читателя.

TeaVM преобразует Java-байткод в JavaScript или WebAssembly. Чтобы пользователь мог менять исходник, автор добавляет teavm-javac: Java-компилятор тоже работает в браузере. Web Worker получает код, компилирует его и возвращает результат странице, сохраняя отзывчивость редактора.

В демо есть отдельные кнопки Compile Java и Run Java. Программа считает простые числа, рисует небольшой фрактал и показывает доступные системные свойства. Запрос к серверу для компиляции не нужен.

Среда отличается от обычной JVM: доступна часть стандартной библиотеки, а код с JNI, динамической загрузкой классов и произвольной рефлексией потребует изменений. Доступа к файлам и переменным оболочки посетителя тоже нет.

#java #webassembly
🔥 1
Смотреть все посты