
Обычно мы не пишем заметки про выход новой версии анализатора PVS-Studio. Однако в новый релиз вошло много интересных изменений, касающихся анализа C и C++ кода, о которых хочется рассказать нашим пользователям.
Читать полностью »
Остаются последние дни перед Joker, и очень хотелось принести на Хабр не обычное интервью, а какой-нибудь мощной дичи. В последнее время люди интересуются серверами на Arm, и так получилось, что у нас есть по этой теме реальные специалисты.
Александр (alexbel) Белокрылов и Леша Войтылов, совместно с Григорием Лабзовским, который руководил центром разработки Oracle в Санкт-Петербурге, чуть более года назад основали компанию BellSoft. Сейчас компания успешно работает, развивается и уже успела получить известность в Java-мире.
По объему коммитов в OpenJDK за прошлый год они вышли на пятое место, и теперь впереди только Oracle, Red Hat, SAP и Google:

Надо понимать, что BellSoft — это не только Arm:
--compress 2 поэтому существенно меньше обычного JDK.В этом интервью мы коснемся только Arm, а всё остальное оставим на следующий раз.
И снова здрасьте! Мы открыли очередной набор в, теперь уже девятую, группу «Разработчик Java» (а десятая группа в планах, внезапно, стоит на 31.12) и подготовили для вас интересные материалы и открытый урок.
Так что поехали.
Хотите уменьшить количество памяти используемой вашим Java-приложением? Посмотрите, как можно улучшить производительность с помощью компактных строк, доступных в Java 9.
Одним из решений по улучшению производительности, представленных в JVM (Oracle HotSpot, если быть точным), в качестве части Java SE 9, оказались компактные строки (compact strings). Их задача заключается в уменьшении размера String-объектов, что позволяет уменьшить общий объем (футпринт) памяти потребляемой приложением. В результате, это может уменьшить количество времени, затрачиваемого на сбор мусора.

Любому Java-разработчику понятно, сколько важного остаётся незаметным для конечного пользователя. Кнопочки на сайте видны всем — но при взгляде со стороны можно никогда не задуматься о бэкенде, без которого эти кнопочки не работали бы.
А у Java-конференции Joker, как и у любой другой конференции, есть свой «бэкенд». «Фронтендом» можно считать спикеров: они видны всем, их гигантский вклад понятен. Но есть и большая работа, происходящая «за кулисами». Кто следит, чтобы доклады были достойного уровня, и помогает спикерам его достичь? Кто решает, какие темы подходят мероприятию? Кто помогает привлечь зарубежных звёзд?
Программный комитет конференции — это «бэкендеры» программы, и в преддверии Joker мы решили расспросить ПК. Во-первых, так можно увидеть мероприятие со стороны, обычно незаметной участникам. А во-вторых, от интервью есть и конкретная практическая польза: поскольку они уже видели лично все доклады грядущего Joker, могут подсказать, на что обратить внимание.
Читать полностью »

В большинстве моих собеседований на технические позиции есть задача, в которой кандидату необходимо реализовать 2 очень похожих интерфейса в одном классе:
Реализуйте оба интерфейса одним классом, если это возможно. Объясните, почему это возможно или нет.
interface WithPrimitiveInt {
void m(int i);
}
interface WithInteger {
void m(Integer i);
}
От переводчика: Эта статья не призывает вас задавать такие же вопросы на интервью. Но если вы хотите быть во всеоружии, когда этот вопрос зададут вам, то добро пожаловать под кат.

Каждый разработчик сталкивался с вопросами про жизненный цикл Activity: что такое bind-сервис, как сохранить состояние интерфейса при повороте экрана и чем Fragment отличается от Activity.
У нас в FunCorp накопился список вопросов на похожие темы, но с определёнными нюансами. Некоторыми из них я и хочу с вами поделиться.

Как сказал один мудрец: вечно смотреть можно на три вещи: как течет вода, как горит огонь и как кто-то пишет очередную стать о DI в Spring Boot. Сегодня я сделаю попытку коротко описать всю эту петрушку.
Читать полностью »
Проверка данных класса (bean) в java тема не новая, но актуальная и здесь я объединю различные аспекты: валидацию данных в рамках JSR-303, покажу как это сделать чисто в Java и с использованием Spring, как делать в стандартном приложении и в Web.
Содержание: Валидация данных (JSR-303) в
— стандартном Java приложении
— c использованием Spring
— объединение Java + Spring
— Spring MVC
Читать полностью »
На очередной встрече московского сообщества Java-разработчиков jug.msk.ru, прошедшей 4 октября 2018 года, Чарльз Наттер рассказал о технологиях, используемых JRuby и другими динамическими языками для JVM.
Сегодня у нас в виртуальной студии самый известный в мире докладчик по Spring — Джош Лонг.
Именно его докладами открываются Java-конференции по всему миру. Именно он отвечает на вопросы сообщества, делает Spring Tips на YouTube, именно его «This week in Spring» мы читаем каждую неделю и многое другое.
Кстати, Джош разрешил использовать все материалы в нашем собственном «This week in Java», но он делает их в таком объеме и глубине, что эти данные ни разу не получилось сжать до формата «дайджеста на 15 минут».
Иногда кажется, что он находится во всех городах одновременно, читает доклады и пишет статьи в один момент. Сегодня мы будем разбираться, как это у него получается. Узнаем про «юргенизацию кода», причины удивительной живучести Spring и то, как он умудрился прожить столько лет без глобальных переписываний всего с нуля и другие интересные фишки.

Josh Long, Spring Developer Advocate at Pivotal

Евгений Трифонов, Олег Чирухин — редакция JUG.ru Group