Обновить
378.01

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Project Valhalla: революция в памяти Java

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.8K

Java-разработчики годами жили по принципу «Everything is an object». И всё бы хорошо, если бы за это нам не приходилось платить «налогом на объект»: каждый раз, когда вы создаёте простой класс из двух полей int, JVM бережно дописывает к нему тяжёлый заголовок, упаковывает в ссылку и разбрасывает по куче, заставляя процессор страдать от постоянных промахов кеша.

Мы привыкли к этому компромиссу. Мы научились использовать примитивные коллекции и костыли, чтобы выжать производительность там, где объектная модель Java начинает буксовать. Project Valhalla призван изменить сами правила игры.

Читать далее

IDE понимает ваш код. AI-агент — нет. Это можно исправить

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели19K

TL;DR: Ваша IDE знает о проекте всё — иерархии типов, ссылки между модулями, исходники библиотек, ошибки компиляции. AI-агент ничего из этого не видит и вынужден грепать код и логи. За один выходной можно написать плагин и CLI, которые выставят семантику IDE наружу — и агент получит те же суперсилы, что и вы. В статье — как это сделано на примере Eclipse и JDT, но подход переносим на любую IDE. Открытый код: github.com/kaluchi/jdtbridge.

Если ваши руки давно привыкли к Ctrl+Shift+G, Ctrl+T, Ctrl+Shift+T и сопротивляются переходу в другой редактор — вы, вероятно, в Eclipse. И вы точно знаете, что ваша IDE понимает код на уровне, который не снился ни одному AI-редактору. Но AI-агент об этом не в курсе, и как следствие, вынужден жечь десятки тысяч токенов на свои grep-ы.

Читать далее

conditionals-spring-boot: расширяем возможности @Conditional

Время на прочтение3 мин
Охват и читатели8.8K

Написал небольшую библиотеку для Spring Boot, которая добавляет типизированные @Conditional-аннотации для работы с конфигурацией через Environment...

Читать далее

Как я дал ИИ-ассистенту доступ к JFR, jcmd и jps через MCP

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели6.7K

Приложение тормозит. Где узкое место? Почему растёт память? Есть ли дедлок?

Я написал JavaPerf — MCP-сервер, который даёт ИИ-инструментам прямой доступ к нативным утилитам JDK для профилирования. Без графических интерфейсов, без ручного CLI — только диалог с ассистентом.

Читать далее

Kafka для начинающих: Apache Avro и Schema Registry (теория)

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели8.9K

Почему использование JSON как формата сообщений может стать узким местом в высоконагруженных системах? Что такое Apache Avro и Schema Registry?

Простым языком об этих технологиях, их работе и причинах их возникновения.

Читать далее

Java для автотестов: первые шаги с нуля

Время на прочтение8 мин
Охват и читатели13K

Статья к открытому уроку курса QA Automation Engineer про начало разработки тестов на языке Java которая погружает в основы синтаксиса.

Читать далее

Обзор AI-ассистентов для кодинга: от автодополнения к агентским системам

Время на прочтение6 мин
Охват и читатели14K

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

В 2026-м сильный ассистент уже умеет читать репозиторий, запускать команды, собирать изменения в дифф и предлагать готовые PR-ы. 

В этой статье по материалам нашего вебинара разберем, как устроены современные AI-ассистенты, чем они отличаются и на что обращать внимание при выборе решения для enterprise-контура. Ключевые моменты – безопасность кода и данных, on-premise развёртывание, риск уязвимостей в сгенерированном коде и контроль действий AI-ассистентов.

Читать далее

Java Digest #33

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели9.8K

Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей, Арсений, Роман, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся со всем сообществом.

В этом выпуске рассказываем, зачем в Java хотят перезапустить проект Detroit. Почему Kubernetes — база для Spring-разработчика. Какое возможное будущее у проверяемых исключений. Как уронить базу, пытаясь обновить кэш. Что такое carrier-классы, которые планируют ввести в Java в будущем. И еще много интересного. Приятного чтения! For those who code after… 🙂

Читать свежий выпуск

Tomcat vs WildFly: как выбрать сервер приложений и почему не нужно ограничиваться одним решением

Время на прочтение6 мин
Охват и читатели6.4K

Для российских компаний выбор между серверами приложений на базе Apache Tomcat и WildFly давно перестал быть спором о «любимом стеке разработчиков». Это стратегическое решение, влияющее на устойчивость бизнес‑сервисов, стоимость владения ИТ‑ландшафтом и способность пройти путь импортозамещения без рисков для критичных систем.

В современных условиях ИТ‑инфраструктура почти всегда неоднородна: рядом живут легкие веб‑сервисы и тяжелые транзакционные ядра, экспериментальные микросервисы и строго регламентированные системы, попадающие под КИИ. В такой среде попытка «посадить все на один тип сервера приложений» приводит либо к избыточной сложности, либо к ограничениям по функционалу и масштабируемости.

Гораздо продуктивнее смотреть на сервер приложений на базе Apache Tomcat и сервер приложений на базе WildFly как на два разных типа решений под разные задачи – и выстраивать платформу, которая позволяет использовать оба подхода в едином управляемом контуре.

Читать далее

Обновления GigaIDE за февраль 2026

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели8.3K

Вот и закончился февраль, за который в GigaIDE появилось ещё больше полезного. Ниже — краткий обзор обновлений PRO-функциональности GigaIDE, которую можно найти в нашем маркетплейсе. Обзор инкремента за январь доступен по ссылке.

Читать далее

Установка Java за 5 минут: JDK 21 или 25 — что выбрать новичку в 2026 году

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели8.9K

Уже вышла Java 25 — самая свежая версия, которую все хотят попробовать. Но ставить ли её новичку? Или взять проверенную Java 21 LTS? В этом гайде — пошаговая установка Java на Windows с картинками, разбор различий между версиями, настройка JAVA_HOME и PATH ориентирован для начинающих разработчиков, изучающих Java

Читать далее

Введение в модели согласованности

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели8.3K

Почему одни системы всегда показывают актуальные данные, а другие — иногда отдают устаревшее, но зато хорошо масштабируются и показывают хорошие показатели по производительности?

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

Читать далее

Зачем нужен companion object в Hilt-модулях

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.9K

Замечали некий companion object в интерфейсах Hilt-модулей? Что он делает, как он работает под капотом, почему так популярен в Hilt-модулях, и почему нельзя обойтись обычными классами? Сегодня я развею эту магию!

Читать далее

Ближайшие события

Навигация как нервная система: Как мы подружили немецкий автопром с японскими платными дорогами через AIDL

Уровень сложностиСложный
Время на прочтение5 мин
Охват и читатели4K

Если вы думаете, что навигационная система в современном автомобиле — это просто красивое приложение, которое рисует синюю линию на карте и говорит «через 200 метров поверните направо», вы застряли в 2010 году.

В Android Automotive OS (AAOS) навигация часто становится одним из самых жирных и критически важных системных компонентов. Это «пространственный мозг» машины. Десятки других модулей постоянно дергают её за рукав с вопросами: «Где мы?», «Какое ограничение скорости?», «Сколько полос на дороге?», «В какой полосе мы сейчас едем?».

В этой статье я поделюсь опытом из своей практики разработки навигационной системы для крупного немецкого автопроизводителя. Мы разберем, как построить надежное межпроцессное взаимодействие (IPC) внутри автомобиля на примере передачи ADAS-атрибутов для японского модуля ETC 2.0.

Читать далее

Kotlin для новичков: от установки IDE до первого проекта

Время на прочтение6 мин
Охват и читатели8.4K

Kotlin уже не просто язык для Android. В 2026 году на нём пишут бэкенд, кроссплатформенные приложения и даже заменяют Java. Почему команды уходят с Java на Kotlin, как новичку начать и при чём тут Kotlin Multiplatform? Разбираемся и пишем «Hello, World!» с Gradle. Бонус: пример кода и ссылка на репозиторий.

Читать далее

Головоломка Ханойские башни на Java

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели7K

Головоломка Ханойские башни (или Ханойская башня, или Towers of Hanoi) – классический пример задачи, в которой лучшее и самое наглядное решение основывается на рекурсии. Кроме того, эта задача иногда встречается на собеседованиях. Тем удивительнее, что последняя статья (хотя и весьма обстоятельная), посвященная  этой задаче на Хабре датируется 2013-м годом и решение приводится на Delphi. Давайте исправим эту печальную ситуацию!

Читать далее

Бизнес-логика первична, микросервисы — вторичны

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели6.2K

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

Но есть более фундаментальный вопрос - кто в системе определяет правила игры?

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

- часть проверок живeт во фронтенде

- часть - в API,

- часть - в промежуточных сервисах

- часть — во временных проверках, добавленных после инцидентов

Добавили новый сервис в цепочку - и изменилось поведение.

Вынесли проверку в отдельный процессинг - и появились состояние гонки.

Перестроили оркестрацию - и неожиданно стала недоступной операция, которая раньше работала.

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

Для финтеха это особенно критично. Допустимость действия - это не просто проверка прав. Это функция состояния процесса, версии правил, контекста операции и регуляторных ограничений. Если эта допустимость зависит от связности сервисов или порядка их вызова, система становится хрупкой и уязвимой, и тогда, начинается разговор о подходе, в котором бизнес-логика централизуется, версионируется и становится инвариантной к физической архитектуре.

Мы отвлекаем существенные ресурсы в поисках решения для проблем.

Читать далее

Коллекции в Java: алгоритмическая сложность и как не тормозить код

Время на прочтение7 мин
Охват и читатели6.5K

Как выбрать коллекцию в Java, чтобы код летал? Разбираем алгоритмическую сложность (Big O) самых популярных структур: ArrayList, LinkedList, HashSet, HashMap. В конце — схемы выбора и лучшие практики от команд. Сохраняйте, чтобы не забыть!

Читать далее

Бойтесь буквы «M». Самый странный баг в моей жизни

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели36K

Вечером в пятницу коллега, назовем его Мститель, спросил, не сталкивался ли я с проблемой, что route возвращает 400... но «если сменить название на сильно другое», то всё ок. Я сперва не обратил внимание на слово «сильно». Может быть, где-то дублируется регистрация этого рута? Или мститель перепутал GET и POST. Или какой-то баг в общем на создание хэндлеров?

Милости просим

Хроники Agent Driven Development трансформации .0: Как ускорить тесты проекта в 6 раз: от 10 минут к 101 секунде

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели8.3K

Почти 800 тестов, 10 минут на прогон, каждый пуш — ожидание на CI. Знакомо? Рассказываю, как довёл время до 101 секунды: снижение таймаутов, параллелизм ScalaTest, shared Testcontainers и защита от регрессий. Scala, SBT, PostgreSQL, GraalVM — конкретные шаги и подводные камни.

Читать далее