Мы подготовили раздел материалов, посвящённых разработке безопасного ПО (РБПО) по ГОСТ Р 56939—2024. Теперь эти материалы представлены в виде бесплатного онлайн-курса из 28 уроков. Такая...
Java не стоит на месте и продолжает активно развиваться. Вышла уже 26 версия языка. В этом релизе реализовали множество фич, направленных на оптимизацию выполнения Java приложений, а также в...
Мы каждый день пишем код, но часто воспринимаем компилятор как "черный ящик". Сегодня приоткроем завесу тайны над работой компилятора, поговорим о его жизненном цикле и узнаем, на каком этапе в...
При сборке Java приложения в нативный образ требуются настройки для работы рефлексии, прокси и других динамических механизмов Java. Зачем, если JVM справлялась с этим сама? Разбираем отличия...
Хорошей практикой в C++ считается размещение функций рядом с типами, для которых они предназначены. Однако, чтобы такой подход работал корректно, важно понимать механизмы поиска имён и знать...
Часто задачи с деревьями на LeetCode решают "магическим" кодом. Но в энтерпрайзе важны читаемость и поддерживаемость на годы. И что делать, когда ещё и объём задачи такой, что на работу руками...
Казалось бы, тайна выравнивания раскрыта. Вы победили невидимого врага — невыровненный доступ. Память под контролем, но производительность по-прежнему шепчет: "Есть ещё нюансы". Что? Нюансы...
Представьте, ваша программа — образец чистого кода, прошедший ревью и покрытый тестами. Казалось бы, всё идеально. Но производительность не такая, на какую рассчитывали. Вы проверили всё, что...
Мы начинаем цикл статей, в котором рассказываем, с чем придётся столкнуться разработчику при переходе между LTS-версиями Java. В этой статье рассмотрим основные изменения, которые ждут...
Java пополняется новыми модными механизмами, а вместе с ней и её усыпальница — место, куда отправляются устаревшие механизмы, такие как Vector, Finalization, NashornScriptEngine, SecurityManager...