Рубрика «java» - 44

Открывающий кейноут JPoint 2019

Взгляды камрадов обращены в будущее. Новая, с пылу с жару версия джавы — Java/JDK 13, о которой недавно писал olegchir в хабрапосте, манит смотреть в завтрашний день. Коварно верну в прошлое — не такое далёкое, как хотелось бы, но достаточно ламповое, чтобы потратить десяток часов.

Дело в том, что коллеги сделали публичными видеозаписи докладов JPoint 2019. Под катом топ-10 докладов по версии участников конференции, а я честно расскажу: почему эти доклады стоит посмотреть в записи.

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

Перевод статьи подготовлен специально для студентов курса «Android-разработчик. Продвинутый курс». И хотя в данном материале речь пойдет преимущественно о Java, материал будет полезен Android-разработчикам

Топ 20 навигационных фич в IntelliJ IDEA - 1


Продолжая серию статей, в которых я освещаю основные фичи IntelliJ IDEA (ранее я писал об основных возможностях дополнения и рефакторинга кода), я хотел бы поговорить о навигации, которая является еще одной возможностью повышения производительности IDE, которая экономит вам много времени, при условии, конечно, что вы используете ее правильно.Читать полностью »

Только что вышла Java 13. ZGC начал делиться памятью, CDS сам запоминает классы, и другие чудеса техники - 1

Сегодня вышла новая версия джавы — Java/JDK 13. Гонка началась с весеннего выпуска JDK 12, состоявшегося 19 марта, а форк от основной ветки произошел 13 июня. Кого-то мы там по пути потеряли вроде JEP 343: Packaging Tool, но в целом всё норм, и пора пожинать плоды.

Скачать новый релиз можно по ссылке. Под катом будет небольшой обзор свежих JEP-ов, вошедших в этот выпуск.

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

Привет! Из заголовка вы уже поняли, о чём я собираюсь рассказать. Тут будет много хардкора:
мы обсудим Java, С, С++, ассемблер, немного Linux, немного ядра операционной системы. А ещё разберём практический кейс, поэтому статья будет в трёх больших частях (достаточно объёмных).

Профилирование со сверхсветовой скоростью: теория и практика. Часть 1 - 1

В первой мы попробуем выжать всё возможное из существующих профилировщиков.
Во второй части сделаем собственный маленький профилировщик, а в третьей посмотрим, как же профилировать то, что профилировать не принято, потому что существующие инструменты не очень для этого подходят. Если готовы пройти этот путь — жду вас под катом :)
Читать полностью »

Всем привет, меня зовут Дмитрий, и сегодня я расскажу о том, как производственная необходимость заставила меня стать контрибутором для фреймворка Micronaut. Наверняка многие о нём слышали. Если вкратце, то это легковесная альтернатива Spring Boot, где основной упор сделан не на рефлексию, а на предварительную компиляцию всех нужных зависимостей. Более подробное знакомство можно начать с официальной документации.

Фреймворк Micronaut используется в нескольких внутренних проектах Яндекса и зарекомендовал себя достаточно хорошо. Так чего же нам не хватало? Могу сказать сразу: из коробки фреймворк поддерживает, в принципе, все фичи, которые теоретически могут понадобиться программисту для разработки бэкендов. Однако есть редкие кейсы, которые из коробки не поддерживаются. Один из них — когда работать нужно не по HTTP, а с расширением HTTP. Например, с дополнительными методами. Таких случаев на самом деле гораздо больше, чем может показаться. Более того, часть таких протоколов является стандартами:

  • Webdav — расширение для доступа к ресурсам. Помимо стандартных методов, HTTP требует поддержки дополнительных методов типа LOCK, PROPPATCH и т. д.
  • Caldav — расширение Webdav для работы с событиями календарного типа. Данный протокол с большой долей вероятности есть в приложениях на вашем смартфоне: для синхронизации календарей, встреч и т. д.

И этим список не исчерпывается. Если вы заглянете в реестр HTTP-методов, то увидите, что HTTP-методов, лишь описанных стандартами RFC, на данный момент 39. А сколько ещё случаев, когда имеется самописный протокол поверх HTTP. Так что поддержка нестандартных HTTP-методов довольно распространена. Также часто бывает, что фреймворк, который вы используете, не поддерживает такие методы. Вот дискуссия на Stack Overflow для ExpressJS. А вот pull request на гитхабе для Tornado. Ну и поскольку Micronaut часто позиционируется как легковесная альтернатива Spring — то вот та же проблема для Spring.
Читать полностью »

Как и у всех разработчиков, у меня настал период затишья. Проект подходил к концу, задач практически не было, хотелось выше зарплату, ну и пошла получать свой заветный job offer.

Подборка психологических и нетипичных технических вопросов с собеседований Java-разработчика - 1

Так вышло, что некоторые собеседования занимали 2-3 этапа, и я накопила парад вопросов, которыми спешу с Вами поделиться.

Психологические вопросы

Подборка психологических и нетипичных технических вопросов с собеседований Java-разработчика - 2

Представители отдела кадров и не IT-руководители качественно выполняют свою работу и тоже хотят тебя о чем-нибудь спросить, но некоторые из них удивляют меня все больше и больше. Руководитель одной из контор устроил мне даже блиц-опрос с таймером. Если раньше обходились двумя вопросами: “Кем Вы видите себя через 5 лет?” и “Что Вас не устраивает на старом месте работы? Сейчас же, все вокруг только и говорят, что о психологии, вот и появляются подобные вопросы.

Мои любимые, простенькие короткие вопросики:
— “Вы конфликтный человек?”
— “Допустим у Вас конфликт, как вы будете его решать?”
— “Если в pull-request вы не согласны с коллегой, какие Ваши действия?”
— “Как часто вы пьете чай на рабочем месте?”
— “Как вы решаете споры в команде?”
— “Опишите работу вашей мечты”
— “Опишите рабочее место Вашей мечты”
— “Если бы вы выиграли в лотерею кругосветное путешествие длиной в год. Какова вероятность, что после приезда вы пойдете на прежнее место работы?”

Однажды мне прислали психологический тест, состоящий из 2 частей в общей сложности на 300 вопросов, потому что: «Данная вакансия предполагает конкурсный отбор в 3 этапа — 2 тестирования по электронной почте (психологическое и профессиональное) и собеседование (очное или скайп, как вам удобно)»
Читать полностью »

«Менеджеру нужно продолжать кодить»: интервью со Стивеном Чином - 1

Многие Java-разработчики знают Стивена Чина. Кто-то видел его трансляции с Java-мероприятий, кто-то — его интервью с другими известными джавистами, а кто-то — доклады про Java на Raspberry Pi. Да что уж там, в Твиттере он @steveonjava — то есть даже юзернеймом показывает, насколько его жизнь посвящена этому языку.

До недавних пор он работал в Oracle, а теперь перешёл в компанию JFrog. Это может звучать неожиданно: уйти из Oracle, когда твоя жизнь — это Java? Но второе название российским джавистам тоже хорошо знакомо, во многом благодаря работающему там Баруху jbaruch Садогурскому.

Скоро российские разработчики смогут увидеть лично и Стивена, и Баруха на конференции Joker, а пока что Стивен рассказал нам о самых разных вещах, например, таких:

  • Чем именно он занимается теперь;
  • Как разработчику правильнее становиться менеджером;
  • Насколько большим можно сделать кластер из Raspberry Pi (и зачем);
  • Жива ли JavaFX;
  • Чем Java-активисту полезен мотоцикл.

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

Продолжение перевода небольшой книги:
«Understanding Message Brokers»,
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Предыдущая переведенная часть: Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1. Введение
Читать полностью »

The Eclipse Foundation выпустила новые спецификации Jakarta EE 8 platform & web-profile.
Они также представили сервер приложений Jakarta EE и набор тестов(TCK) для проверки других совместимых реализаций.

Вышел окончательный релиз Jakarta EE 8 - 1
10 сентября 2019 года была выпущена Jakarta EE 8.
Читать полностью »

Перевод данной статьи подготовлен специально для студентов курса «Разработчик Java».

Как полиморфизм реализован внутри JVM - 1


В моей предыдущей статье Everything About Method Overloading vs Method Overriding (“Все о перегрузке и переопределении методов”) были рассмотрены правила и различия перегрузки и переопределения методов. В этой статье мы посмотрим, как обрабатывается перегрузка и переопределение методов внутри JVM.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js