Как стать автором
Обновить
189.53

Java *

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

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

25 января 2024 года стартовала онлайн-конференция Java Champions 2024. Мероприятие продлится в виртуальной среде до 30 января. Каждый день будет состоять из 7 сессий. Они начнутся в 9:00 EST и закончатся в 17:00 EST. После каждой презентации участникам будет предоставлено время для общения с докладчиками.

Чемпионы Java — это разработчики со всего мира, получившие признание за вклад в сообщество Java. Чемпионы на конференции J Champions делятся своими знаниями с разработчиками. Аудитория проекта — 14 миллионов Java-разработчиков по всему миру.

Теги:
Рейтинг0
Комментарии0

Только что вышли две библиотеки с одним номером:

  • Spring for Apache Kafka 3.1

  • Spring AMQP (Spring for RabbitMQ) 3.1

Как следует из названия, это нативная поддержка Kafka и Rabbit в Spring.

Подробности — в релиз ноутах на GitHub. Здесь по Кафке, здесь по Рэббиту.

По сути, это минорные обновления и апгрейд до актуального Spring Framework 6.1.

Подробности должны быть в следующем дайджесте.

Теги:
Рейтинг0
Комментарии0

Только что вышел Spring Authorization Server 1.2

Это фреймворк, реализующий  OAuth 2.1 and OpenID Connect 1.0 поверх Spring Security.

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

Теги:
Рейтинг0
Комментарии0

Java-разработчики, мы вас ждём на One day offer!

Что такое One day offer?
Мероприятие, на котором можно стать частью нашей команды: без лишних собесов, тестовых заданий и бюрократии

Кто может участвовать?
Мы ищем java-разработчиков middle+ и senior уровня. Неважно, в каком городе ты живешь, главное находиться на территории России

Когда и где?
9 ноября в онлайне

Как попасть?

  1. Оставь заявку на участие

  2. Пройди предварительное онлайн-интервью и получи приглашение на ивент

  3. Подключайся на ивент, чтобы познакомиться с проектами поближе, пройти финальное собеседование и получить свой оффер

Узнать подробности и подать заявку по ссылке
❗️Последний день подачи заявки на участие — 7 ноября

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Про Youtube-канал для технарей и подкаст про Java в 2023 году 📺

Привет! Пришло время познакомить вас с каналом Cloud.ru Tech. Здесь беседуем с интересными гостями в формате подкастов, делимся новостями из мира IT-технологий и обсуждаем карьеру в IT.

🎧 Сегодня предлагаем посмотреть подкаст про Java — тема будет интересна как заядлым джавистам, так и Junior-разработчикам. 

Вместе с Петром Хаустовым — тимлидом из команды СБОЛ.про мы обсудили, зачем и как изучать Java в 2023 году, что делать с синдромом самозванца, а также как джавистам проходить собеседования и находить для себя лучшие условия. 

Подписывайтесь на Youtube-канал Cloud.ru Tech, чтобы быть в курсе IT-трендов!

Теги:
Рейтинг0
Комментарии0

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

В большинстве языков является естественным распространение области видимости переменных из внешнего блока во все внутренние блоки кода. Приведу пример, чтобы не было сомнений (псевдо-код намеренно нарушает синтаксис известных мне языков, чтобы не быть отнесенным явно к одному из них):

Function(type par)
{//outer block(see“inner block”father)
  Int X = 123;
  If(par == someConst)       
  {//inner block
	We can use X here!
  }
}

Определение для Лямбда-функции тоже создает внутренний блок кода:

Action Function(type par)
{//outer block (see “inner block” father)
  Int X = 123;
  If(par == someConst)       
  goto Label; //we need goto just to escape definition of extra inner block
  Return lambda=>
  {// inner block
  some code that uses X in the block
  };
Label:
  We can still use X here!
}

Интересно! Это только мне кажется, что передача переменных из окружающего кода в код Лямбда-функции, ВОЗМОЖНО, изначально была ошибкой при разработке компилятора, когда стандартный способ распространения области видимости переменных по недосмотру применили к вновь появившимся инлайн реализациям функций? Но потом кто-то нашел применение такой возможности и, как это часто бывает, «Бага»(bug) превратилась в «Фичю» (feature)?

Теги:
Рейтинг0
Комментарии2

Сезон Java — всё! Сегодня последний день приёма заявок для участия в сезоне Java one love, и совсем скоро мы узнаем победителя.

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

? Делаем свою простейшую систему сборки для Java

? Перестаём бояться генерировать байт-код

? FizzBuzz и искусство фильтрации

? FizzBuzz и искусство фильтрации: Stream API и предикаты

? Ad-hoc мониторинг: сбор, хранение и визуализация данных

? Компилирование «железного» бинарника Java-программы Google Closure Stylesheets с GraalVM

Если вы как раз дописываете свою статью — поторопитесь: с завтрашнего дня статьи в сезон не принимаются. Ваши голоса могут повлиять на итоговый рейтинг — голосуем и выбираем победителя сезона по ссылке ? → https://u.habr.com/java1love

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Существует ли совершенный Java-код?

В реальной жизни не всегда можно сделать так, чтобы код был красивым, читаемым, без «костылей» и оптимизированным. А статьи в сезоне Java one love помогут примирить внутреннего перфекциониста с реалистом (или хотя бы облегчить боль первого).

Итак, учимся на чужих граблях, когда лучше послушать совет «‎Работает? Не трогай!», а когда, наоборот, экспериментировать и пробовать новые подходы:

? Ускоряем java-рефлексию в 2023

? Динамическое создание слушателей в Kafka 

? Релиз Jmix 2.0 — новой версии платформы для быстрой разработки бизнес-приложений на Java

? Байки джависта

?️ Нагрузочное тестирование API без использования UI

Если у вас есть Java-опыт — делитесь им на Хабре и получайте призы. Поторопитесь — осталась всего неделя до конца → https://u.habr.com/java1love 

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Рейтинг0
Комментарии0

До конца сезона Java one love осталась всего пара недель!

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

Топ самых популярных туториалов в сезоне Java one love:

?️ Нагрузочное тестирование API без использования UI

?️ Как скомпилировать приложение Spring Boot в native image с помощью GraalVm и развернуть его с помощью Docker

? Поднимаем кластер PostgreSQL в Docker и Testcontainers

? Авторизация в приложении Spring Boot с Spring Security 3.1.0 и PostgreSQL

? Магия Spring Framework своими руками

? Одна из возможных версий переезда с MySQL на PostgreSQL

Если у вас есть Java-опыт — делитесь им на Хабре и получайте призы → https://u.habr.com/java1love

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Рейтинг0
Комментарии0

О чем пишут участники сезона Java one love

Тут есть и туториалы «бери и делай», и сложные кейсы промышленной эксплуатации, и небезопасные эксперименты. Есть даже философские статьи, основанные на эмпирическом анализе и опыте разработки.

?️ Почему WebAssembly плохо годится для Java

?️ Как скомпилировать Spring Boot приложение в native image с помощью GraalVm и развернуть его с помощью Docker

?️ Фундаментальное руководство по пакетам в Java

? Поднимаем кластер PostgreSQL в Docker и Testcontainers

? Авторизация в приложении Spring Boot с Spring Security 3.1.0 и PostgreSQL

Если у вас есть Java-опыт— делитесь им на Хабре и получайте призы → https://u.habr.com/java1love

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Рейтинг0
Комментарии0

Самое ценное в сезоне Java One Love — это обмен опытом. 

Джуны пишут свои первые статьи о реализации Java-приложений, ищут советы и рекомендации, а опытные джависты демонстрируют редкие решения для серьёзной промышленной эксплуатации:

? Поднимаем кластер PostgreSQL в Docker и Testcontainers

? Авторизация в приложении Spring Boot с Spring Security 3.1.0 и PostgreSQL

? Использование Kotlin и WebFlux для выполнения задач ML в Apache Spark на GPU

? Магия Spring Framework своими руками

? Исчерпывающее руководство по одномерным массивам в Java 

Новый взгляд на Maven-plugin для IDEA — GMaven  

Если у вас есть Java-опыт— делитесь им на Хабре и получайте призы → https://u.habr.com/java1love

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Рейтинг0
Комментарии0

В прошлом сезоне Java выиграла статья про Spring Framework, и первую статью о Spring нового сезона мы попросили прокомментировать победителя.

Олег Чирухин, победитель прошлого сезона Java, о статье «‎Магия Spring Framework своими руками»: 

Что под капотом у Spring — подробности в стиле Spring-потрошителя Жени Борисова. Статья начинается исследованием Proxy-объектов, связи прокси-объекта с принципом Лисков и существующими прокси в JDK, и продолжается обсуждением BeanPostProcessor’ов и JMX. Всё это на хороших практических примерах, с кодом на гитхабе, выжимкой по смыслу из этого кода и скриншотами.

Участники сезона Java one love:

? Магия Spring Framework своими руками

? Исчерпывающее руководство по одномерным массивам в Java

Новый взгляд на Maven-plugin для IDEA — GMaven

?‍?‍?‍? Разница между загрузкой и инициализацией классов в Java на любопытном примере

? Одна из возможных версий переезда с MySQL на PostgreSQL 

Если у вас тоже есть Java-опыт, ждём ваших статей на Хабре. Хотим ещё прочитать про реактивную джаву, архитектурные фреймворки для DDD, PaaS/FaaS/Multitenansy в облаках, интеграционные тесты → https://u.habr.com/java1love 

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Нужно ли быть хабраавтором-старожилом, чтобы участвовать в новом сезоне Java one love? Нет, надо просто любить джаву, жабу, жаву.

Эти статьи вырвались в лучшие прямо из «Песочницы». Смотрите сами, рейтинги впечатляют:

? Передача цифровых данных по рации с помощью мобильного приложения  

?️ Пишем приложение на Mi Band 7 с сервисной частью

?‍? Строим свой SSO сервер используя Spring Authorization Server

? Как новичку подарить жизнь telegram-боту на java

?️ DoZer — сцинтилляционный гамма-спектрометр с bluetooth

? Юнга, стоп, у нас кончились ресурсы. Или как мы оптимизировали наши микросервисы

Сезон идёт до 15 сентября. Если у вас есть Java-опыт— делитесь им на Хабре и получайте призы → https://u.habr.com/java1love

Сезон длится до 15 сентября. Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

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

Первые статьи сезона Java one love прибыли! Не далее чем на этой неделе стартовал новый сезон Java, а у нас уже два хардкорных джависта.

Правда ли, что загрузка класса не всегда сопровождается его проверкой и инициализацией? Или как осуществить переезд с MySQL на PostgreSQL с вынесением независимых бизнес-процессов из монолита в микросервисы?

Наш первые участники сезона проясняют весьма тонкие нюансы устройства Java-мира и выполняют невероятные трюки over-engineering’а:

?‍?‍?‍? Разница между загрузкой и инициализацией классов в Java на любопытном примере

? Одна из возможных версий переезда с MySQL на PostgreSQL

Если вы тоже хотите поделиться опытом, ждём ваших статей на Хабре. Сезон длится до 15 сентября.

Спонсор Сезона Java one love — Мир Plat.Form.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Если вы используете бесплатную IntelliJ IDEA Community Edition, то из поддержки JS и CSS там только весьма скудная syntax highlighting only подсветка синтаксиса, но есть простой способ её улучшить.

В этом нам поможет плагин TextMate Bundles, который уже встроен в современных версиях IDEA. В этом плагине уже встроены бандлы для JavaScript и CSS, причём, с достаточно неплохой подсветкой синтаксиса. Загвоздка в том, что эта подсветка не работает из коробки, т.к. её перекрывает та самая syntax highlighting only подсветка.

Чтобы всё заработало, идём в Settings > Editor > File Types и удаляем File name patterns для CSS (syntax highlighting only) и JavaScript (syntax highlighting only). Тоже самое можно проделать и для SQL (syntax highlighting only).

Пример было/стало для JavaScript:

Сравнение подсветки JavaScript.
Сравнение подсветки JavaScript.

К сожалению, это не даёт подсветку синтаксиса для CSS и JavaScript встроенных в соответствующие HTML тэги.

Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Довольно частый сценарий использования атомиков в качестве счётчиков выглядит так:

  • Запускаем длительную обработку чего-либо

  • Долго и нудно его инкрементим

  • По завершению один раз читаем (ну, либо, читаем с некоторой периодичностью, для отображения прогресса)

А так как отдельно метода increment() у него нет, то используются штатные getAndIncrement() либо incrementAndGet() без использования возвращаемого значения. Например:

public void frequentlyCalledMethod(){    
    doSomeWork();    
    counter.incrementAndGet();
}

Или может getAndIncrement()? Хм… А в чём, собственно, разница, кроме очевидного из имени методов?

public final int incrementAndGet() {
   return U.getAndAddInt(this, VALUE, 1) + 1;
}
public final int getAndIncrement() {
   return U.getAndAddInt(this, VALUE, 1);

}

Ну вы поняли…

Мелочь конечно, но если всё равно отбрасываем результат, то зачем нам лишняя операция?

Всего голосов 8: ↑8 и ↓0+8
Комментарии0