Foreign Function & Memory API to Bridge the Gap Between Java and Native Libraries
After its review has concluded, JEP 454, Foreign Function & Memory API, has been promoted from Targeted to Integrated for JDK 22. This JEP proposes to finalize this feature after two rounds of incubation and three rounds of preview. The API aims to replace traditional, complex methods like JNI, offering a more efficient and secure approach.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2023/10/foreign-function-and-memory-api/
After its review has concluded, JEP 454, Foreign Function & Memory API, has been promoted from Targeted to Integrated for JDK 22. This JEP proposes to finalize this feature after two rounds of incubation and three rounds of preview. The API aims to replace traditional, complex methods like JNI, offering a more efficient and secure approach.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2023/10/foreign-function-and-memory-api/
Java 11 и Java 17 лидируют по использованию Java, показало исследование Azul
Read: https://www.infoworld.com/article/3708994/java-11-and-java-17-lead-java-usage-azul-survey-finds.html#tk.rss_java
Read: https://www.infoworld.com/article/3708994/java-11-and-java-17-lead-java-usage-azul-survey-finds.html#tk.rss_java
Что выбрать новичку: Python или Java?
Волна цифровизации неумолимо нарастает, равно как и количество начинающих программистов. Стоит ли поддаться общей тенденции сегодня, и если да, то с какого языка лучше начать своё погружение в мир кода?
Читать: https://habr.com/ru/companies/productstar/articles/769680/?utm_campaign=769680
Волна цифровизации неумолимо нарастает, равно как и количество начинающих программистов. Стоит ли поддаться общей тенденции сегодня, и если да, то с какого языка лучше начать своё погружение в мир кода?
Читать: https://habr.com/ru/companies/productstar/articles/769680/?utm_campaign=769680
Где 15 минут пешком от дома до метро в Москве и как различать панельные дома…
Продолжаем изучать географию столицы и как она влияет на комфорт жилья. В этой публикации подключим маршрутизацию и расчитаем пешеходные расстояния от входа в метрополитен до жилых зданий. В прошлый раз я анализировал жилье в городе на удаленность от негативных факторов и поделился инструкцией "Где в Москве жить «неплохо»". Теперь же перейдем на позитивные факторы выбора места квартиры и найдем в Москве жилые дома в шаговой доступности от метро.
Читать: https://habr.com/ru/articles/770044/?utm_campaign=770044
Продолжаем изучать географию столицы и как она влияет на комфорт жилья. В этой публикации подключим маршрутизацию и расчитаем пешеходные расстояния от входа в метрополитен до жилых зданий. В прошлый раз я анализировал жилье в городе на удаленность от негативных факторов и поделился инструкцией "Где в Москве жить «неплохо»". Теперь же перейдем на позитивные факторы выбора места квартиры и найдем в Москве жилые дома в шаговой доступности от метро.
Читать: https://habr.com/ru/articles/770044/?utm_campaign=770044
❤2
Java-стек Red Hat Quarkus улучшает пользовательский интерфейс разработчика
Read: https://www.infoworld.com/article/3709551/red-hat-quarkus-java-stack-spruces-up-the-dev-ui.html#tk.rss_java
Read: https://www.infoworld.com/article/3709551/red-hat-quarkus-java-stack-spruces-up-the-dev-ui.html#tk.rss_java
Java 8 Stream.filter() пример Пример с нулевой и пустой строкой
Filter() - это метод класса Stream, который принимает предикат Predicate (функциональный интерфейс с методом, возвращающим булево значение) и возвращает поток, состоящий из элементов этого потока, соответствующих заданному предикату. Например, если поток получен из списка, содержащего "SONY", "APPLE" и "GOOGLE", а предикатом являются элементы, длина которых больше 4, то filter вернет другой поток, содержащий только APPLE и GOOGLE, оставив без внимания SONY, поскольку его длина не больше 4. Java 8 предоставляет расширенные возможности фильтрации с использованием лямбд и предикатов. Вы можете фильтровать элементы из списка, карты и множества, используя в качестве предиката четкое и лаконичное лямбда-выражение. Например, чтобы отфильтровать всех людей, чье имя начинается на "J", можно использовать list.filter(). В результате будет создан другой список, содержащий людей, чье имя начинается с буквы J.
Вопросы и задания для собеседования по Java
Read: http://www.java67.com/2023/10/java-8-filter-example-example-with-null.html
Filter() - это метод класса Stream, который принимает предикат Predicate (функциональный интерфейс с методом, возвращающим булево значение) и возвращает поток, состоящий из элементов этого потока, соответствующих заданному предикату. Например, если поток получен из списка, содержащего "SONY", "APPLE" и "GOOGLE", а предикатом являются элементы, длина которых больше 4, то filter вернет другой поток, содержащий только APPLE и GOOGLE, оставив без внимания SONY, поскольку его длина не больше 4. Java 8 предоставляет расширенные возможности фильтрации с использованием лямбд и предикатов. Вы можете фильтровать элементы из списка, карты и множества, используя в качестве предиката четкое и лаконичное лямбда-выражение. Например, чтобы отфильтровать всех людей, чье имя начинается на "J", можно использовать list.filter(). В результате будет создан другой список, содержащий людей, чье имя начинается с буквы J.
Вопросы и задания для собеседования по Java
Read: http://www.java67.com/2023/10/java-8-filter-example-example-with-null.html
👍2😁1🤔1
Java News Roundup: Helidon 4.0, Eclipse Serializer 1.0, JEPs for JDK 22
This week's Java roundup for October 23rd, 2023 features news from OpenJDK, JDK 22, Jakarta Data 1.0-M1, GraalVM 21.0.1, Spring 6.1-RC2, Spring Modulith 1.1-RC1, Spring Vault 3.1-RC1, Helidon 4.0, Eclipse Serializer 1.0, Quarkus 3.5, Liberica NIK 22.3.4, Hibernate ORM 6.4-CR1, Hibernate Search 7.0-CR1, Maven 4.0.0-alpha8, Camel 4.0.2, Camel Quarkus 3.5, JHipster Lite 0.46 and JDKMonitor.
By Michael Redlich
Read: https://www.infoq.com/news/2023/10/java-news-roundup-oct23-2023/
This week's Java roundup for October 23rd, 2023 features news from OpenJDK, JDK 22, Jakarta Data 1.0-M1, GraalVM 21.0.1, Spring 6.1-RC2, Spring Modulith 1.1-RC1, Spring Vault 3.1-RC1, Helidon 4.0, Eclipse Serializer 1.0, Quarkus 3.5, Liberica NIK 22.3.4, Hibernate ORM 6.4-CR1, Hibernate Search 7.0-CR1, Maven 4.0.0-alpha8, Camel 4.0.2, Camel Quarkus 3.5, JHipster Lite 0.46 and JDKMonitor.
By Michael Redlich
Read: https://www.infoq.com/news/2023/10/java-news-roundup-oct23-2023/
Управление общей кодовой базой в микросервисной архитектуре
При большом количестве микросервисов в проекте приходится сталкиваться с тем, что в некоторых из них нужно дублировать один и тот же код, а обнаружив баг в одном месте, искать и исправлять его везде. При этом, если микросервисы поддерживаются разными разработчиками, то каждый будет исправлять баг по-своему и в дальнейшем будет сложнее привести всё к единообразию. Давайте на примере рассмотрим несколько подходов к переиспользованию кода в микросервисах.
Читать: https://habr.com/ru/articles/769338/?utm_campaign=769338
При большом количестве микросервисов в проекте приходится сталкиваться с тем, что в некоторых из них нужно дублировать один и тот же код, а обнаружив баг в одном месте, искать и исправлять его везде. При этом, если микросервисы поддерживаются разными разработчиками, то каждый будет исправлять баг по-своему и в дальнейшем будет сложнее привести всё к единообразию. Давайте на примере рассмотрим несколько подходов к переиспользованию кода в микросервисах.
Читать: https://habr.com/ru/articles/769338/?utm_campaign=769338
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Астрологи объявили неделю бэкенд-разработчика 🔮
🎃 В канун Дня Всех Святых Старшие Арканы развернули инфраструктуру на ваших серверах — выясните, что они предсказывают!
Создавать вэбхуки или изучить новый фреймворк?
Сделайте скриншот экрана — узнайте, какая карта определит вашу судьбу в профессии и какой амулет поможет избежать бед 🧿
Скрин, скрин!
🎃 В канун Дня Всех Святых Старшие Арканы развернули инфраструктуру на ваших серверах — выясните, что они предсказывают!
Создавать вэбхуки или изучить новый фреймворк?
Сделайте скриншот экрана — узнайте, какая карта определит вашу судьбу в профессии и какой амулет поможет избежать бед 🧿
Скрин, скрин!
🔥4👍2😱1
Возможное усовершенствование потоков Java
Read: https://www.infoworld.com/article/3709529/possible-java-streams-enhancement.html#tk.rss_java
Read: https://www.infoworld.com/article/3709529/possible-java-streams-enhancement.html#tk.rss_java
Java Unsafe API для низкоуровневого манипулирования памятью
Привет, Хабр!
Иногда приходится сталкиваться с задачами, которые требуют выхода за рамки стандартных абстракций и безопасности Java. Мы ищем способы оптимизации, решения проблем производительности, или, возможно, просто хотим расширить свой кругозор в Java. Для таких случаев существует Java Unsafe API. Этот инструмент предоставляет нам низкоуровневый доступ к памяти и более широкие возможности для манипуляции данными.
Java изначально создавалась с идеей "ноль амортизации" и скрытия сложности управления памятью от разработчиков. Но есть сферы, где низкоуровневая работа с памятью может сделать наш код более эффективным, быстрым и мощным.
Представьте, что у вас есть приложение для обработки потоков видео. Вы хотите получить каждый кадр как можно быстрее, обработать его и отправить обратно. В этой ситуации быстрое копирование памяти между буферами может сэкономить драгоценные миллисекунды и обеспечить более плавную обработку.
Читать: https://habr.com/ru/companies/otus/articles/770878/?utm_campaign=770878
Привет, Хабр!
Иногда приходится сталкиваться с задачами, которые требуют выхода за рамки стандартных абстракций и безопасности Java. Мы ищем способы оптимизации, решения проблем производительности, или, возможно, просто хотим расширить свой кругозор в Java. Для таких случаев существует Java Unsafe API. Этот инструмент предоставляет нам низкоуровневый доступ к памяти и более широкие возможности для манипуляции данными.
Java изначально создавалась с идеей "ноль амортизации" и скрытия сложности управления памятью от разработчиков. Но есть сферы, где низкоуровневая работа с памятью может сделать наш код более эффективным, быстрым и мощным.
Представьте, что у вас есть приложение для обработки потоков видео. Вы хотите получить каждый кадр как можно быстрее, обработать его и отправить обратно. В этой ситуации быстрое копирование памяти между буферами может сэкономить драгоценные миллисекунды и обеспечить более плавную обработку.
Читать: https://habr.com/ru/companies/otus/articles/770878/?utm_campaign=770878
👍9
@Scheduled + @Async (в Spring Boot)
Недавно отвечал на вопрос почему аннотации @Scheduled и @Async иногда используют вместе, данный вопрос попался человеку на собеседовании
Многие начинающие разработчики на java не до конца понимают в каких потоках происходит выполнение программы в таком случае
В данном материале постараюсь объяснить зачем аннотации @Scheduled и @Async ставят вместе, какая проблема при этом решается, в каких потоках происходит работа программы и как делать правильно
Подписывайтесь на мой блог в телеграм, где я раньше всего публикую все материалы
Читать: https://habr.com/ru/articles/771112/?utm_campaign=771112
Недавно отвечал на вопрос почему аннотации @Scheduled и @Async иногда используют вместе, данный вопрос попался человеку на собеседовании
Многие начинающие разработчики на java не до конца понимают в каких потоках происходит выполнение программы в таком случае
В данном материале постараюсь объяснить зачем аннотации @Scheduled и @Async ставят вместе, какая проблема при этом решается, в каких потоках происходит работа программы и как делать правильно
Подписывайтесь на мой блог в телеграм, где я раньше всего публикую все материалы
Читать: https://habr.com/ru/articles/771112/?utm_campaign=771112
👍16
Jax London 2023: Team Dynamics, Developer Platforms, and the Adoption of AI
For the tenth time, Java fans attended JAX London in the first week of October. The keynotes argued that teams are the real product of software development, soft skills are anything but soft, developers should want to use internal platforms, and that AI won't take developer jobs – developers using AI will. JAX London will return in the first week of October 2024.
By Karsten Silz
Read: https://www.infoq.com/news/2023/11/jax-london-2023-team-ai/
For the tenth time, Java fans attended JAX London in the first week of October. The keynotes argued that teams are the real product of software development, soft skills are anything but soft, developers should want to use internal platforms, and that AI won't take developer jobs – developers using AI will. JAX London will return in the first week of October 2024.
By Karsten Silz
Read: https://www.infoq.com/news/2023/11/jax-london-2023-team-ai/
Байт-код — это просто! Как сделать DI по-настоящему быстрым
Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.
Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.
Ускоримся!
Читать: https://habr.com/ru/companies/yandex/articles/770800/?utm_campaign=770800
Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.
Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.
Ускоримся!
Читать: https://habr.com/ru/companies/yandex/articles/770800/?utm_campaign=770800
Жилье в 500м от сетевых продуктовых магазинов в Москве
Приятно когда живешь там где у тебя вход в метро в 15 минутах ходьбы и с комфортом жизни неплохо. Но кушать хочется всегда, а на рабочей неделе уж совсем нет времени и желания ехать в супермаркет чтобы сварить гречневую кашу и взять что-нибудь на завтрак. Магазины шаговой доступности есть везде, но мне хотелось бы чтобы это было что-нибудь более привычное, типа Пятёрочки, Дикси, Магнита, Перекрёста, Магнолии, Атак или Ленты.
Читать: https://habr.com/ru/articles/771184/?utm_campaign=771184
Приятно когда живешь там где у тебя вход в метро в 15 минутах ходьбы и с комфортом жизни неплохо. Но кушать хочется всегда, а на рабочей неделе уж совсем нет времени и желания ехать в супермаркет чтобы сварить гречневую кашу и взять что-нибудь на завтрак. Магазины шаговой доступности есть везде, но мне хотелось бы чтобы это было что-нибудь более привычное, типа Пятёрочки, Дикси, Магнита, Перекрёста, Магнолии, Атак или Ленты.
Читать: https://habr.com/ru/articles/771184/?utm_campaign=771184
Платформа Lightbend Akka объединяет облачные и периферийные разработки
Read: https://www.infoworld.com/article/3709454/lightbend-akka-platform-unifies-cloud-edge-dev.html#tk.rss_java
Read: https://www.infoworld.com/article/3709454/lightbend-akka-platform-unifies-cloud-edge-dev.html#tk.rss_java
Введение в ООП: повседневный стиль программирования
Read: https://www.infoworld.com/article/3709690/what-is-object-oriented-programming-the-everyday-programming-style.html#tk.rss_java
Read: https://www.infoworld.com/article/3709690/what-is-object-oriented-programming-the-everyday-programming-style.html#tk.rss_java
На что способен КриптоПро JCP? Туториал по валидации отсоединенной электронной подписи
Привет, Хабр!
Меня зовут Вадим, я Java-разработчик SimbirSoft. В этой статье я расскажу, как на одном из проектов мы реализовали возможность валидации электронной подписи с помощью КриптоПро JCP. Этот фреймворк оказался хорошей альтернативой КриптоПро SVS после того, как последний попал под санкции Microsoft. Впоследствии на других подобных проектах я убедился в том, что решение рабочее и наиболее подходящее под бизнес-цели заказчиков. Прежде всего это банки, нанимающие организации и другие юрлица, где ведется электронный документооборот.
Читать: https://habr.com/ru/companies/simbirsoft/articles/771232/?utm_campaign=771232
Привет, Хабр!
Меня зовут Вадим, я Java-разработчик SimbirSoft. В этой статье я расскажу, как на одном из проектов мы реализовали возможность валидации электронной подписи с помощью КриптоПро JCP. Этот фреймворк оказался хорошей альтернативой КриптоПро SVS после того, как последний попал под санкции Microsoft. Впоследствии на других подобных проектах я убедился в том, что решение рабочее и наиболее подходящее под бизнес-цели заказчиков. Прежде всего это банки, нанимающие организации и другие юрлица, где ведется электронный документооборот.
Читать: https://habr.com/ru/companies/simbirsoft/articles/771232/?utm_campaign=771232
EqualsVerifier Delivers Improved Support for JPA Entities
The EqualsVerifier library may be used in Java unit tests to automatically verify equals() implementations inside a project and provides one hundred percent code coverage on equals() and hashCode() methods. Recent releases improved support for JPA, by requiring the use of getters instead of using fields, and solving several related bugs.
By Johan Janssen
Read: https://www.infoq.com/news/2023/11/equalsverifier-jpa-entities/
The EqualsVerifier library may be used in Java unit tests to automatically verify equals() implementations inside a project and provides one hundred percent code coverage on equals() and hashCode() methods. Recent releases improved support for JPA, by requiring the use of getters instead of using fields, and solving several related bugs.
By Johan Janssen
Read: https://www.infoq.com/news/2023/11/equalsverifier-jpa-entities/
Жук, нумерология, хеш или ничо? Оптимизация работы с путями
Привет, Хабр! Меня зовут Евгений Кузьмин, я Java-разработчик в CDEK. Надеюсь, все знают, что это за компания и чем она занимается. Давайте представим, что вам нужно отправить посылку с гостинцами родственнику в Москву из Новосибирска. Вы приходите в ближайший пункт приёма посылок и оформляете услугу доставки. Что же происходит дальше? Казалось бы, всё очевидно: посылка сразу летит или едет из Новосибирска в Москву. Но всё не так просто... Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше. В этой статье я поделюсь с вами своим опытом оптимизации задачи по редактированию и поддержке в актуальном состоянии огромного количества данных типа "куда направить товар". Классическая задача программирования на практике логистики. При этом мы не будем выходить за рамки стандартного стека Java Springboot и Postgres. Статья будет интересна разработчикам (от джуна до сеньора), которым будет интересно погрузиться в трудовые будни разработчика в сфере транспортной логистики.
Читать: https://habr.com/ru/companies/cdek_blog/articles/771372/?utm_campaign=771372
Привет, Хабр! Меня зовут Евгений Кузьмин, я Java-разработчик в CDEK. Надеюсь, все знают, что это за компания и чем она занимается. Давайте представим, что вам нужно отправить посылку с гостинцами родственнику в Москву из Новосибирска. Вы приходите в ближайший пункт приёма посылок и оформляете услугу доставки. Что же происходит дальше? Казалось бы, всё очевидно: посылка сразу летит или едет из Новосибирска в Москву. Но всё не так просто... Думаю, все согласятся, что не рационально гнать отдельную фуру с одной коробочкой для каждого заказа. Наша задача выстроить логистику таким образом, чтобы по пути загрузить и выгрузить как можно больше посылок и поехать дальше. В этой статье я поделюсь с вами своим опытом оптимизации задачи по редактированию и поддержке в актуальном состоянии огромного количества данных типа "куда направить товар". Классическая задача программирования на практике логистики. При этом мы не будем выходить за рамки стандартного стека Java Springboot и Postgres. Статья будет интересна разработчикам (от джуна до сеньора), которым будет интересно погрузиться в трудовые будни разработчика в сфере транспортной логистики.
Читать: https://habr.com/ru/companies/cdek_blog/articles/771372/?utm_campaign=771372
👍1
Создание сервиса авторизации через систему ЕСИА
Всем привет. Меня зовут Динис, я старший разработчик в БФТ-Холдинге.
В данной статье приведен план по созданию сервиса авторизации через систему ЕСИА. Тема будет интересна тем, кто внедряет такой сервис для своего приложения. В статье я собрал ключевые выдержки из документации с частями кода, а весь код вы можете найти в конце статьи по ссылке на GitHub.
Что такое ЕСИА?
ЕСИА — единая система идентификации и аутентификации. В ней формируются, учитываются и хранятся сведения об участниках системы — физических и юридических лицах, которые прошли регистрацию с созданием учётной записи. Подтверждённая учётная запись в ЕСИА — своего рода электронный паспорт, с помощью которого можно получать доступ к разным сайтам, порталам и системам, не используя дополнительные средства регистрации и авторизации, например логин и пароль.
Читать: https://habr.com/ru/companies/bft/articles/771320/?utm_campaign=771320
Всем привет. Меня зовут Динис, я старший разработчик в БФТ-Холдинге.
В данной статье приведен план по созданию сервиса авторизации через систему ЕСИА. Тема будет интересна тем, кто внедряет такой сервис для своего приложения. В статье я собрал ключевые выдержки из документации с частями кода, а весь код вы можете найти в конце статьи по ссылке на GitHub.
Что такое ЕСИА?
ЕСИА — единая система идентификации и аутентификации. В ней формируются, учитываются и хранятся сведения об участниках системы — физических и юридических лицах, которые прошли регистрацию с созданием учётной записи. Подтверждённая учётная запись в ЕСИА — своего рода электронный паспорт, с помощью которого можно получать доступ к разным сайтам, порталам и системам, не используя дополнительные средства регистрации и авторизации, например логин и пароль.
Читать: https://habr.com/ru/companies/bft/articles/771320/?utm_campaign=771320
👍1