Рубрика «java»

PVS-Studio 6.26

Обычно мы не пишем заметки про выход новой версии анализатора PVS-Studio. Однако в новый релиз вошло много интересных изменений, касающихся анализа C и C++ кода, о которых хочется рассказать нашим пользователям.
Читать полностью »

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

Александр (alexbel) Белокрылов и Леша Войтылов, совместно с Григорием Лабзовским, который руководил центром разработки Oracle в Санкт-Петербурге, чуть более года назад основали компанию BellSoft. Сейчас компания успешно работает, развивается и уже успела получить известность в Java-мире.

По объему коммитов в OpenJDK за прошлый год они вышли на пятое место, и теперь впереди только Oracle, Red Hat, SAP и Google:

«Java-мир больше никогда не будет прежним» — интервью с Александром Белокрыловым и Алексеем Войтыловым из BellSoft - 1

Надо понимать, что BellSoft — это не только Arm:

  • Вышла Liberica JDK 11, поддерживаются Linux x86_64, Windows, Linux ARMv8, Linux ARMv7 (включая Raspberry Pi). Будут выкладываться сборки для Mac и Solaris Sparc.
  • Публикуются образы под все архитектуры на Docker Hub для Debian, CentOS, Alpine. Образ для Alpine делается из lite версии с --compress 2 поэтому существенно меньше обычного JDK.

В этом интервью мы коснемся только Arm, а всё остальное оставим на следующий раз.

Читать полностью »

И снова здрасьте! Мы открыли очередной набор в, теперь уже девятую, группу «Разработчик Java» (а десятая группа в планах, внезапно, стоит на 31.12) и подготовили для вас интересные материалы и открытый урок.

Так что поехали.

Хотите уменьшить количество памяти используемой вашим Java-приложением? Посмотрите, как можно улучшить производительность с помощью компактных строк, доступных в Java 9.

Одним из решений по улучшению производительности, представленных в JVM (Oracle HotSpot, если быть точным), в качестве части Java SE 9, оказались компактные строки (compact strings). Их задача заключается в уменьшении размера String-объектов, что позволяет уменьшить общий объем (футпринт) памяти потребляемой приложением. В результате, это может уменьшить количество времени, затрачиваемого на сбор мусора.

Компактные строки в Java 9 - 1Читать полностью »

«ПК», но не «персональный компьютер»: интервью с программным комитетом Joker - 1

Любому Java-разработчику понятно, сколько важного остаётся незаметным для конечного пользователя. Кнопочки на сайте видны всем — но при взгляде со стороны можно никогда не задуматься о бэкенде, без которого эти кнопочки не работали бы.

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

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

Перегрузка, которая запрещена, или bridge-методы в Java - 1

В большинстве моих собеседований на технические позиции есть задача, в которой кандидату необходимо реализовать 2 очень похожих интерфейса в одном классе:

Реализуйте оба интерфейса одним классом, если это возможно. Объясните, почему это возможно или нет.

interface WithPrimitiveInt {
  void m(int i);
}

interface WithInteger {
  void m(Integer i);
}

От переводчика: Эта статья не призывает вас задавать такие же вопросы на интервью. Но если вы хотите быть во всеоружии, когда этот вопрос зададут вам, то добро пожаловать под кат.

Читать полностью »

Нестыдные вопросы про жизненный цикл - 1

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

Читать полностью »

Еще одна статья о DI в Spring Boot - 1

Как сказал один мудрец: вечно смотреть можно на три вещи: как течет вода, как горит огонь и как кто-то пишет очередную стать о 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.

Чарльз Наттер о динамических языках в JVM на jug.msk.ru - 1
Читать полностью »

Сегодня у нас в виртуальной студии самый известный в мире докладчик по Spring — Джош Лонг.

Именно его докладами открываются Java-конференции по всему миру. Именно он отвечает на вопросы сообщества, делает Spring Tips на YouTube, именно его «This week in Spring» мы читаем каждую неделю и многое другое.

Кстати, Джош разрешил использовать все материалы в нашем собственном «This week in Java», но он делает их в таком объеме и глубине, что эти данные ни разу не получилось сжать до формата «дайджеста на 15 минут».

Иногда кажется, что он находится во всех городах одновременно, читает доклады и пишет статьи в один момент. Сегодня мы будем разбираться, как это у него получается. Узнаем про «юргенизацию кода», причины удивительной живучести Spring и то, как он умудрился прожить столько лет без глобальных переписываний всего с нуля и другие интересные фишки.

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 1

Участники

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 2«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 3Josh Long, Spring Developer Advocate at Pivotal

«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 4«Научиться Spring — бессмысленное занятие» — Джош Лонг, главный евангелист Spring о внутренней кухне проекта - 5Евгений Трифонов, Олег Чирухин — редакция JUG.ru Group

Читать полностью »