TGViewer
Channel Public Channel
Java

Java

@javatg

Самая актуальная информация по Java

По всем вопросам- @haarrp

@itchannels_telegram - 🔥лучшие каналы

@pythonl - 🐍

@ai_machinelearning_big_data- ml

@ArtificialIntelligencedl - AI

@datascienceiot - ds

@pythonlbooks 📚

РКН: clck.ru/3FmwKr

#VRHSZ
Subscribers
16.8K
Photos
1.2K
Videos
74
Links
1.1K
Recent Posts 20 shown
Post #2336 1.07K
🚀 JetBrains обновила roadmap Kotlin: главный фокус - Multiplatform, Wasm и удобство разработки

Что сейчас в приоритете:

- довести Kotlin/Wasm до Stable
- ускорить KAPT до уровня Java APT
- улучшить incremental compilation в K2
- сделать новый JVM reflection
- перевести wasm-wasi на WASI Preview 2 и добавить Component Model
- продвинуть Swift Export из Alpha в Beta
- улучшить Xcode integration и Kotlin/Native debugger
- добавить импорт Swift Package Manager пакетов
- развивать Kotlin LSP и поддержку VS Code
- выпустить единый Kotlin Toolchain
- добавить first-class поддержку JPA/Hibernate для Kotlin stdlib types
- стабилизировать kotlinx.serialization, kotlinx.collections.immutable и kotlinx-io
- выпустить Kotlin DataFrame 1.0
- добавить HTTP/3 и gRPC в Ktor

Из уже завершённого: Swift 6.3 support, multi-module compilation для Kotlin/Wasm, Navigation3 для Compose Multiplatform и 18-месячное окно security fixes для stdlib.

Главное направление видно очень чётко: Kotlin всё сильнее двигается в сторону полноценной кроссплатформенной экосистемы — JVM, iOS, WebAssembly и web.

Следующее обновление roadmap запланировано на февраль 2027.

https://kotlinlang.org/docs/roadmap.html
  • ❤ 4
  • 👍 1
  • 🔥 1
  • 😱 1
Post #2335 1.49K
Apache Kafka курс 2026: бесплатный курс по Kafka с нуля до профи на русском

Kafka обучение без воды: каждый модуль состоит из понятной теории, схем, команд, которые можно запустить у себя, типичных ошибок и вопросов для самопроверки. Курс подходит, чтобы выучить Kafka с нуля, подготовиться к собеседованию на backend, data engineer или DevOps-позицию и спроектировать надёжную систему на Kafka в продакшене.

https://github.com/justxor/KAFKAFREECOURSR
  • 👍 14
Post #2334 1.88K
🚀 Spring Boot 4 получил отдельный starter для RestClient

Теперь imperative HTTP-клиент можно подключать через:

spring-boot-starter-restclient

Для реактивного WebClient используется:

spring-boot-starter-webclient

А настройки HTTP-клиентов собраны под единым префиксом:

spring.http.clients.*

То есть конфигурация стала понятнее, а выбор между imperative и reactive подходом — более явным.

#SpringBoot4 #RestClient #Java
  • ❤ 7
  • 🔥 4
  • 👍 2
  • 🎉 1
Post #2333 1.73K
🎸 Приглашаем на Java Rock Star Meetup 

Самая ламповая встреча Java-коммьюнити состоится уже в ближайшую пятницу. Вместе с крутыми спикерами будем копаться под капотом JVM, холиварить и общаться в неформальной атмосфере.

🗓 18 сентября, 18:00, Москва, Лофт Casa Picassa на Бауманской.

Что в программе? 

⚙️ Иван Углянский, эксперт по JVM и компиляторам, расскажет о Project Valhalla: зачем нужны Java value-типы и почему новый подход наконец даёт надежду довести многострадальный проект до финиша.

🤖 Максим Козлов, сооснователь и CTO GitFlic, разберет, как в агентном SDLC сохранить связь между требованиями, кодом и реальным результатом.

Участие бесплатное, нужна только регистрация. Присоединяйся к рок-звёздам Java!

Реклама: Акционерное Общество "АКСИОМ" Erid: 2VtzqueKfqE
  • ❤ 2
  • 🔥 2
  • 👍 1
  • 🤩 1
Post #2332 1.69K
💡 Java: Checked vs Unchecked Exceptions, коротко и по делу

В Java исключения делятся на две основные категории:

- Checked - например, IOException. Компилятор заставит либо обработать исключение через try/catch, либо указать throws.
- Unchecked — наследники RuntimeException. Обязательной обработки на этапе компиляции нет.

Пример:

IOException → checked
NullPointerException → unchecked
IllegalArgumentException → unchecked

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

#Java #ErrorHandling
  • ❤ 1
  • 👍 1
Post #2331 1.68K
🚀 Spring Boot 4 получил полноценную поддержку Kotlin Serialization

Теперь для kotlinx.serialization есть отдельный starter:

spring-boot-starter-kotlinx-serialization-json

Что он делает:

- автоматически создаёт Json bean
- регистрирует HTTP message converter
- позволяет настраивать сериализацию через spring.kotlinx.serialization.json.*
- работает с привычными @Serializable data class

Пример настройки:

pretty-print: true
ignore-unknown-keys: true

Для Kotlin-проектов на Spring Boot это убирает лишнюю ручную конфигурацию и делает kotlinx.serialization полноценной альтернативой Jackson.

#SpringBoot4 #Kotlin
  • 👍 5
  • ❤ 3
  • 🔥 2
Post #2330 1.33K
🔥 Хочешь расти в IT быстрее остальных? Перестань учиться в одиночку

Можно годами смотреть курсы, читать документацию и всё равно топтаться на месте.

А можно попасть в правильное окружение, где каждый день обсуждают новые инструменты, вакансии, реальные кейсы, ошибки и то, что уже завтра станет стандартом.

Я собрал папки и каналы по разным направлениям IT, чтобы ты быстрее находил нужных людей, идеи и полезный контент - без бесконечного поиска.

AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: https://t.me/+90Z5TAyfuNU5YmRi
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_ci
Java: t.me/javatg
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg

Собеседования и карьера:

DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview

Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy

Полезное сверху:

ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy

Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg

Подпишись и сохрани, здесь регулярно появляются новые подборки, инструменты и материалы, которые реально помогают расти быстрее.
  • ❤ 1
  • 👍 1
  • 🔥 1
Post #2329 1.79K
☕ Java добралась до GPU Tensor Cores почти без потери производительности

В Project Babylon показали, как один и тот же Java Tensor API можно запускать на разных GPU через HAT — без переписывания логики под каждого производителя.

На NVIDIA A10:

- обычный matrix multiply: около 240 GFLOP/s
- через Tensor Cores: до 7,3 TFLOP/s
- производительность приблизилась к native CUDA/WMMA

На Apple M4 Max тот же Java-код запускается через OpenCL 1.2, а после настройки tile size и параметров запуска получил до 8× ускорения относительно наивной реализации.
Под капотом:

- Project Babylon даёт code reflection
- HAT преобразует Java-код под GPU backend
- Tensor API абстрагирует MMA-операции
- NVIDIA получает аппаратные Tensor Cores, а другие платформы — эквивалентное tiled-исполнение

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

https://social.ora.cl/6011BEbmLc
  • 🔥 5
  • ❤ 4
  • 🥰 2
  • 🤯 1
  • 🎉 1
Post #2328 1.67K
Java: рефакторинг legacy-кода начинай с теста

Даже странное поведение старого метода может быть важно для вызывающего кода. Прежде чем «сделать красиво», зафиксируй, как он работает сейчас.

* Добавь тест на текущее поведение. Проверь обычный сценарий и важные граничные случаи.
* Меняй по одному шагу: переименуй переменную, выдели метод, упрости условие.
* После каждого изменения запускай тесты. Если что-то сломалось, причину проще найти в небольшом изменении.
* Исправления багов отделяй от рефакторинга. Изменение поведения лучше делать отдельным шагом с отдельным тестом.

Переписывание целого класса без покрытия усложняет проверку: код выглядит лучше, но сохранил ли он прежнее поведение?
  • ❤ 6
  • 👍 6
  • 🔥 3
  • 🤬 1
Post #2327 1.59K
Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026  — всероссийском чемпионате по программированию с двумя треками и призовым фондом 10 250 000 рублей.

Успей зарегистрироваться до 13 сентября.

В треке программирования роботов тебе предстоит запрограммировать робособаку для доставки груза через полосу препятствий сначала в онлайн-симуляторе, а затем на офлайн-полигоне в финале 22 октября. Рекомендуемые стеки: Go, Java, Python, C#, C++, JS.

Участие в командах 2-5 человек. Если у тебя нет своей команды, кураторы помогут объединиться с другими участниками на платформе.

Масштабный финал объединит борьбу за призовой фонд 10 250 000 рублей, выступления хедлайнеров, доклады спикеров и активности для всех гостей мероприятия.

Успей зарегистрироваться и пройти квалификацию до 13 сентября.

erid:2VSb5xPaMKx
Post #2326 1.73K
🍃 Spring Boot 4: проверьте зависимости Flyway и Liquibase

После обновления одной зависимости flyway-core или liquibase-core недостаточно для автоконфигурации миграций. В Spring Boot 4 поддержку технологий вынесли в отдельные модули.

Используйте соответствующий стартер:

* Flyway → spring-boot-starter-flyway
* Liquibase → spring-boot-starter-liquibase

Для тестов, включая test slices:

* spring-boot-starter-flyway-test
* spring-boot-starter-liquibase-test

Все перечисленные зависимости относятся к группе org.springframework.boot. Тестовые стартеры добавляются с областью test в Maven или через testImplementation в Gradle.

Руководство по миграции: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Migration-Guide#module-dependencies

#SpringBoot #Java #Flyway
  • 👍 6
  • 🔥 3
  • ❤ 1
Post #2325 2K
💡 Java: переопределяешь `equals()` - переопредели и `hashCode()`

Два объекта с одинаковым email могут быть равны по equals(), но HashSet.contains() при этом вернёт false.

Причина: HashSet и HashMap сначала используют хеш, чтобы определить, где искать объект, а затем проверяют равенство. Если хеши различаются, до equals() дело может не дойти.

Правило: равные объекты обязаны иметь одинаковый `hashCode()`. При этом одинаковый хеш не гарантирует равенство - коллизии допустимы.

В примере на картинке равенство определяется по email, поэтому хеш тоже вычисляется по нему.

И ещё: не меняйте поля, участвующие в `equals()` и `hashCode()`, пока объект хранится в `HashSet` или используется как ключ `HashMap` - поиск может перестать его находить.

#Java #OOP
  • 👍 4
  • ❤ 3
  • 🎉 1
Post #2324 2.45K
🚀 Apache Kafka - это распределённая платформа для передачи и хранения потоков событий в реальном времени.

Проще: сервисы не общаются напрямую друг с другом, а отправляют события в Kafka, а другие сервисы читают их когда нужно.

В 2026 Kafka используют для:

• связи микросервисов
• логов и событий
• real-time аналитики
• CDC из баз данных
•• обработки больших потоков данных
построения event-driven архитектуры

Главная причина популярности: высокая пропускная способность, масштабирование и возможность надёжно хранить события и перечитывать их позже.
https://www.youtube.com/shorts/Z-t8CCs7ty4
  • ❤ 9
  • 🔥 2
  • 🎉 2
Post #2323 2.33K
🚀 Spring Boot 4 меняет подход к тестовым зависимостям

Теперь для каждой технологии используется свой test starter по схеме:

spring-boot-starter-*-test

Например, для Spring Security:

spring-boot-starter-security-test

Что это даёт:

- у каждой технологии свой тестовый starter
- spring-boot-starter-test подтягивается транзитивно
- зависимости для тестов становятся понятнее и аккуратнее
- меньше ручной сборки test classpath

Для Security-тестов в Spring Boot 4 лучше подключать именно ...-security-test, а не отдельный spring-security-test.
  • 👍 7
  • ❤ 4
  • 🔥 2
Post #2322 2.01K
Школа программирования Java Online Projects поздравляет с Днем Знаний!🧑‍🎓📚

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

🔥 Скидка 50% на курсы «Микросервисы, Kafka, Docker Spring Cloud, WebFlux» и «Деплой микросервисов в Kubernetis/Helm»
Бонусы: выпускные проекты Rescue Service и TopJava2
✨ Курс TopKotlin или DocJava в подарок

Суперпредложение: скидка 55% скидка на всю линейку Микросервисов + все бонусы включены🔥

Программа на 100% покрывает продвинутый стек компетенций:

Архитектура и веб-стек — начинаем с реактивных приложений: Project Reactor, Spring WebFlux, R2DBC. Дальше переходим на Spring Boot 4 — полный MVC-стек и виртуальные потоки (Virtual Threads).

Инфраструктура Spring Cloud — отказоустойчивые системы на Spring Cloud Gateway и Config Server, паттерны Circuit Breaker, RateLimiter, Retry.

Event-Driven & Data — асинхронное взаимодействие через Kafka, сериализация в Avro и хранение схем в Schema Registry, паттерн Outbox с Kafka Connect и Debezium поверх PostgreSQL, Hibernate/JPA и миграции Flyway.

Безопасность — сквозная аутентификация и авторизация на Keycloak, OAuth 2.0, OpenID Connect и JWT, защита от CSRF, хранение сессий в Redis.

Тестирование и качество — интеграционные тесты с Testcontainers, WireMock и Awaitility, проверка под высокой нагрузкой с Gatling.

Observability — метрики, логи и распределенные трассировки через Micrometer, Prometheus, Loki, Tempo (или Zipkin) и визуализация всего этого в Grafana.

DevOps и развертывание — пайплайны в GitHub Actions, Docker и Docker Compose, оркестрация в Kubernetes, управление релизами через Helm.

🚀 Больше 30 технологий в одной линейке!

Успейте забрать курсы по суперцене до окончания акции! 💥
  • 🔥 4
  • ❤ 2
  • 👍 1
  • 🤬 1
Post #2321 2.07K
🖥 Spring Boot 4 улучшил наблюдаемость Redis через Observation API.

Теперь команды Redis можно автоматически связывать с метриками и трассировками:

- latency операций
- spans для Redis-команд
- ошибки и длительность запросов
- интеграция с общей системой наблюдаемости приложения

Особенно удобно использовать это вместе с OpenTelemetry starter, чтобы Redis сразу попадал в единый tracing и metrics pipeline.

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

#SpringBoot4 #Redis
  • 👍 7
  • ❤ 4
  • 🔥 4
Post #2320 2.54K
Spring Boot 4: консольные логи теперь можно отключить одной настройкой.


logging:
console:
enabled: false

Полезно для продакшена и контейнеров, где логи уходят не в stdout, а, например, в файл или через OTLP.

При этом остальные способы логирования можно оставить:

• file appender
• удалённый сбор логов
• OTLP
• собственные appenders

Удобная мелочь, которая позволяет не городить отдельную конфигурацию Logback только ради отключения консоли.
  • ❤ 6
  • 👍 6
  • 🎉 2
Post #2319 2.56K
💡 Java: не используй `Thread.sleep()` для ожидания работы

Thread.sleep() - это просто пауза на заданное время.

Проблема в том, что ты угадываешь:

❌ поток может проснуться слишком рано
❌ или наоборот, ждать дольше, чем нужно
❌ polling через sleep() создаёт лишние задержки и проверки

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

wait() / notify()
CountDownLatch
✅ другие примитивы синхронизации из java.util.concurrent

Например:


CountDownLatch done = new CountDownLatch(1);

done.await(); // ждём сигнал
done.countDown(); // работа завершена


А если задача должна выполняться периодически, вместо бесконечного цикла с sleep() лучше взять



ScheduledExecutorService exec =
Executors.newSingleThreadScheduledExecutor();

exec.scheduleAtFixedRate(
this::doWork,
0,
1,
TimeUnit.SECONDS
);

Thread.sleep() хорошо подходит для простой задержки.


Для ожидания события и периодических задач в Java есть более точные инструменты.

#Java #Concurrency
  • ❤ 6
  • 👍 6
  • 🔥 4
Post #2318 2.65K
🚀 Spring Boot 4 упростил работу с MongoDB health checks

Теперь для проверки состояния MongoDB больше не нужен Spring Data.

Что изменилось:

- health indicators переехали в spring-boot-mongodb
- работают напрямую с MongoDB driver
- для /actuator/health достаточно spring-boot-starter-mongodb
- Spring Data подключать не обязательно

То есть если сервис работает с MongoDB напрямую через драйвер, health check всё равно можно получить без лишней зависимости.

Полезное изменение для более лёгких Spring Boot 4 сервисов.
  • 👍 6
  • ❤ 2
  • 🔥 2
Post #2317 2.79K
Java-ловушка: . в формате числа не всегда означает точку

В DecimalFormat шаблон вроде:


#,###.##


не гарантирует вывод 1,234.56.

Символы зависят от locale:

🇺🇸 US → 1,234.56
🇮🇹 Italy → 1.234,56

Поэтому если формат предназначен для конкретной страны, лучше задавать её явно:


DecimalFormatSymbols it =
new DecimalFormatSymbols(Locale.ITALY);

DecimalFormat format =
new DecimalFormat("#,###.##", it);


Иначе приложение может внезапно начать форматировать числа иначе просто потому, что JVM запустили с другой локалью.

Мелочь, которая особенно неприятно всплывает в деньгах, отчётах и CSV.
  • 👍 12
  • ❤ 3
  • 🔥 1
Older posts →

About this channel

How can I read @javatg without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Java: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Java have?
Java (@javatg) has 16.8K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Java know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →