Чашечка Java
9.98K subscribers
3.31K photos
8 videos
50 files
4.85K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Shenandoah GC в JDK

Привет, Хабр!

Shenandoah GC - это сборщик мусора для OpenJDK, целью которого является минимизация времени пауз, возникающих в результате сборки мусора, путем выполнения процессов эвакуации памяти параллельно с работающими Java-потоками. Фичей Shenandoah является то, что время пауз GC не зависит от размера кучи, что означает одинаково короткие времена пауз как для кучи размером в 200 МБ, так и для 200 ГБ. Это достигается за счет использования дополнительного указателя косвенности для каждого Java-объекта, что позволяет потокам GC компактизировать кучу, пока Java-потоки продолжают выполняться.

Разработка Shenandoah началась с экспериментального проекта, целью которого было предоставление альтернативы другим сборщикам мусора, которые приоритизируют пропускную способность или размер памяти над отзывчивостью. Уже к 12-й версии JDK Shenandoah был готов к использованию, хотя и оставался помеченным как экспериментальная функция. Это состояние сохранялось, чтобы соответствовать статусу других сборщиков мусора, таких как Epsilon GC и ZGC.

Основное событие в истории Shenandoah - включение его в состав продуктовых функций начиная с 15-й версии JDK. Т.е для его использования больше не требовалось разблокировать экспериментальные опции VM. Такое изменение было в основном косметическим и касалось классификации настроек Shenandoah. Тем не менее, это был значительный шаг вперед, подтверждающий зрелость этого сборщика мусора.


Читать: https://habr.com/ru/companies/otus/articles/806929/?utm_campaign=806929

@a_cup_of_java
21 лучший вопрос для собеседования по Maven для Java-разработчиков

Здравствуйте, ребята, для Java-разработчика Maven является одним из основных инструментов, который используется для создания Java-приложений. Поскольку большинство Java-проектов используют Maven для сборки, от Java-разработчика ожидается, что он знает Maven и знает его хорошо. Поэтому вопросы по Maven довольно часто встречаются на собеседованиях с Java-разработчиками, но я видел, как многие Java-программисты приходили на эти собеседования неподготовленными и не могли ответить на большинство вопросов по таким инструментам, как Maven, Gradle или даже git. Когда я спросил одного кандидата, почему вы не готовитесь к Maven перед собеседованиями по Java, он ответил: "Я не смог найти никакого списка вопросов по Maven".

Вопросы и учебники для Java-собеседований

Read: http://www.java67.com/2024/04/top-21-maven-interview-questions.html

@a_cup_of_java
Top 21 Maven Interview Questions Answers for Java Developers

Hello guys, for a Java developer, Maven in one of the essential tool and its used to build your Java application. Since most of the Java projects used Maven for building, it is expected from a Java developer that he knows Maven and knows it well. That's why Maven questions are quite common on Java developer interviews but I have seen many Java programmers coming to these interview unprepared and not able to answer most of the questions on tools like Maven, Gradle or even git. When I asked one candidate why don't you prepare for Maven before your Java interviews, he said, I wasn't able to find any list of Maven questions.

Java Interview questions and tutorials

Читать: http://www.java67.com/2024/04/top-21-maven-interview-questions.html

@a_cup_of_java
Когда решил изучить Java по видео индусов и дошел до момента, где уже понимаешь индусов, но всё ещё не понимаешь Java:
Старт разработки с применением GraphQL / DGS Framework

Привет! Мы – Екатерина и Виктория, middle-разработчик и старший разработчик в БФТ-Холдинге. В статье кратко расскажем об основах DGS фреймворка, его преимуществах, проблемах, с которыми мы столкнулись при работе с ним, а также покажем создание простого сервиса с поддержкой WebFlux.


Читать: https://habr.com/ru/companies/bft/articles/807013/?utm_campaign=807013

@a_cup_of_java
Сбер ищет опытных Java-разработчиков для создания новой технологической платформы
 
О команде
Нам предстоит разработать систему управления хозяйственной деятельностью и расчета зарплат в Сбере. Стань первым автором кода новой ERP-системы на технологическом стеке Platform V.
 
Обязанности:
— Участие в полном цикле разработки
— Проектирование/разработка back-end и API
— Обеспечение чистоты кода, тестирование, код-ревью, релизы
— Анализ и оптимизация производительности.

Требования:
— Знание Java/Kotlin, Spring от 3-х лет
— Понимание микросервисной архитектуры
— Опыт SQL/NoSQL
— Навыки работы с брокерами сообщений и тестированием
— Знания архитектуры высоконагруженных приложений
— Опыт командной работы, код-ревью, git flow.
 
Условия: работа в одном из лучших офисов Москвы, ежегодный пересмотр зарплаты и годовая премия, скидка на ипотеку, хороший ДМС для сотрудников и семьи.
 
Если вам интересно создавать продукт без legacy, ждем ваших откликов

Реклама
Cloud Native Computing Foundation Graduation of CloudEvents: Q&A with Clemens Vasters

Earlier this year, the Cloud Native Computing Foundation (CNCF) announced that CloudEvents had graduated. CloudEvents is a specification designed to expose event metadata in a standardized manner, which helps to ensure interoperability across platforms, services, and systems.
By Steef-Jan Wiggers

Read: https://www.infoq.com/news/2024/04/cncf-cloudevents-graduation/

@a_cup_of_java
QCon London: Lessons Learned From Building LinkedIn’s AI/ML Data Platform

At the QCon London 2024 conference, Félix GV from LinkedIn discussed the AI/ML platform powering the company’s products. He specifically delved into Venice DB, the NoSQL data store used for feature persistence. The presenter shared the lessons learned from evolving and operating the platform, including cluster management and library versioning.
By Rafal Gancarz

Read: https://www.infoq.com/news/2024/04/linkedin-ai-platform-venicedb/

@a_cup_of_java
Java News Roundup: JobRunr 7.0, Introducing the Commonhaus Foundation, Payara Platform, Devnexus

This week's Java roundup for April 8th, 2024 features news highlighting: JobRunr 7.0; introducing the Commonhaus Foundation; the April 2024 edition of Payara Platform; JEP 473, Stream Gatherers (Second Preview), and JEP 469, Vector API (Eighth Incubator), Proposed to Target for JDK 23; and Devnexus 2024.
By Michael Redlich

Read: https://www.infoq.com/news/2024/04/java-news-roundup-apr08-2024/

@a_cup_of_java
Еще раз о перформансе стримов в Java

Перевод статьи, где автор замеряет перформанс Stream API в Java на около-реалистичных (и не очень) задачах. Как и автору, мне нередко на глаза попадаются заявления что мол вся эта функциональщина в джаве - баловство и скорее вредный сахар. И что старовер с джавы 1.6 напишет на циклах заведомо более быстрый код, чем хипстер на стримах. Также в статье наглядно демонстрируется, в каких именно условиях параллельные стримы могут начать приносить пользу.


Читать: https://habr.com/ru/articles/807647/?utm_campaign=807647

@a_cup_of_java
Java в облаках

Будущее наступает. Нам уже очень сложно вообразить, как люди жили без постоянного доступа в интернет, как встречались, не имея телефонов, как ходили в фотосалоны, а потом хранили редкие фото всю жизнь, да даже как каждый день ходить на работу в офис - многие уже забыли. Думаю, очень скоро в прошлое отойдет и разворачивание приложений на физических серверах. Все уйдут в облака.


Читать: https://habr.com/ru/articles/808155/?utm_campaign=808155

@a_cup_of_java
Безопасный Continuous Deployment БД по принципам DB-First

В статье рассматривается Continuous Deployment для БД с бесшовными релизами за счёт обратно-совместимых обновлений и автоматизации проверок совместимости с помощью подхода DB-First.


Читать: https://habr.com/ru/articles/808279/?utm_campaign=808279

@a_cup_of_java
Настройка сервиса аутентификации OpenAM и шлюза авторизации OpenIG для защиты приложений

Если в организации множество приложений и сервисов, то нет необходимости разрабатывать аутентификацию и авторизацию для каждого сервиса отдельно. Оптимальным подходом является использование централизованного сервиса аутентификации совместно со шлюзом авторизации, который и определяет политики доступа к приложениям.

В этой статье мы настроим централизованную аутентификацию через сервис аутентификации на Open Access Manager (OpenAM) и настроим доступ к приложению через шлюз авторизации Open Identity Gateway (OpenIG), который будет использовать сессию аутентификации OpenAM. В качестве защищаемого приложения будем использовать приложение, разработанное с использованием Spring Boot и Spring Security.


Читать: https://habr.com/ru/articles/808431/?utm_campaign=808431

@a_cup_of_java
Java-сервисы больше всего страдают от уязвимостей сторонних разработчиков, говорится в отчете

Read: https://www.infoworld.com/article/3715264/java-services-hit-hardest-by-third-party-vulnerabilities-says-report.html#tk.rss_java

@a_cup_of_java
Java для домохозяек: логика разбора сообщений внутри Telegram бота

Представляю вашему вниманию свою инструкцию по взаимодействию пользователя с Телеграм ботом в различных ситуациях.

Telegran bot (long polling) Avandy News, обзор статья, open source GitHub

Основная идея: Avandy News Analysis (включена в Реестр российского ПО, разраб - я)

Реестр российского ПО: Как попал в него


Читать: https://habr.com/ru/articles/808535/?utm_campaign=808535

@a_cup_of_java
Предложение по Java упорядочит импорт пакетов модулей

Read: https://www.infoworld.com/article/3715384/java-proposal-would-streamline-module-package-imports.html#tk.rss_java

@a_cup_of_java
21 ошибка в 21-й версии Apache NetBeans

Apache NetBeans — одна из первых IDE для Java, поддержка которой не прекращается на протяжении почти 30 лет. Совсем недавно вышла 21-я версия. Мы решили проверить исходный код такого долгожителя и выбрали наиболее интересные ошибки, которые разберём в этой статье.


Читать: https://habr.com/ru/companies/pvs-studio/articles/808939/?utm_campaign=808939

@a_cup_of_java
Ручное подтверждение сообщения в Kafka

В этой статье описывается реализация задачи ручного подтверждения(acknowledgment) обработки сообщения в Kafka через ручную отправку смещения(commit offset) сообщения. Логика реализована с использованием Java, Spring и Kafka.


Читать: https://habr.com/ru/articles/808975/?utm_campaign=808975

@a_cup_of_java
Искусство ETL. Пишем собственный движок SQL на Spark [часть 6]

В предыдущих сериях (FAQ1 2 3 4 5 ) мы весьма подробно рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL поверх Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.
В данной части поговорим о том, как добавить в выражения SQL поддержку функций. Например,

SELECT
MAX(score1, score2, score3, score4, score5) AS max_score,
MIN(score1, score2, score3, score4, score5) AS min_score,
MEDIAN(score1, score2, score3, score4, score5) AS median_score,
score1 + score2 + score3 + score4 + score5 AS score_sum
FROM raw_scores INTO final_scores
WHERE ABS(score1 + score2 + score3 + score4 + score5) > $score_margin;


— тут у нас функции MAX, MIN и MEDIAN принимают любое количество аргументов типа Double и возвращают Double, а ABS только один такой аргумент.
Вообще, кроме общей математики, в любом уважающем себя диалекте SQL как минимум должны быть функции для манипуляций с датой/временем, работы со строками и массивами. Их мы тоже обязательно добавим. В classpath, чтобы движок мог их оттуда подгружать. До кучи, ещё и операторы типа >= или LIKE, которые у нас уже были реализованы, но хардкодом, сделаем такими же подключаемыми.
Предупреждение о сложности материала

Уровень сложности данной серии статей в целом высокий. Базовые понятия в тексте совсем не объясняются, да и продвинутые далеко не все. Однако, эта часть несколько проще для ознакомления, чем предыдущие. Но всё равно, понимать её будет легче, если вы уже пробежались по остальным хотя бы по диагонали.


Читать: https://habr.com/ru/articles/808483/?utm_campaign=808483

@a_cup_of_java
​​Топ-10 книг по Java в 2024 году

В статье разобрались, какие книги по Java стоит читать на русском языке, а какие – только в оригинале.

Подборка субъективная, но вполне подойдет, если хотите быстро сориентироваться и не вдаваться в пучину подробностей, изучать отзывы и рецензии. К каждой книге коротко прописаны плюсы, минусы и краткий обзор: https://proglib.io/p/top-10-knig-po-java-v-2024-godu-2024-03-01

#книги #java