Библиотека джависта | Java, Spring, Maven, Hibernate
24.9K subscribers
1.86K photos
38 videos
42 files
2.64K links
Все самое полезное для Java-разработчика в одном канале.

Список наших каналов: https://yangx.top/proglibrary/9197

Обратная связь: @proglibrary_feedback_bot

По рекламе: @proglib_adv

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
🐧📖 ТОП-10 книг по Linux в 2023 году

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

Читать статью
Узнаем версию Java

В Java можно узнать версию текущего экземпляра JVM (Java Virtual Machine) с помощью функции System.getProperty("java.version");

Этот код вернет текущую версию Java, установленную на компьютере.
#код
Зачем нужны и какие бывают блоки инициализации?

Блоки инициализации представляют собой код, заключенный в фигурные скобки и размещаемый внутри класса вне объявления методов или конструкторов.

• Существуют статические и нестатические блоки инициализации.
• Блок инициализации выполняется перед инициализацией класса загрузчиком классов или созданием объекта класса с помощью конструктора.
• Несколько блоков инициализации выполняются в порядке следования в коде класса.
• Блок инициализации способен генерировать исключения, если их объявления перечислены в throws всех конструкторов класса.
• Блок инициализации возможно создать и в анонимном классе.
#вопросы_с_собеседований
Класс "обертка" (wrapper class)

Класс-обертка (wrapper class) — это класс, который обеспечивает возможность использования примитивных типов данных как объектов. Каждый примитивный тип данных в Java имеет соответствующий класс-обертку: byte — Byte, short — Short, int — Integer, long — Long, float — Float, double — Double, boolean — Boolean и char — Character.

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

В этом примере мы создаем объекты классов-оберток для примитивных типов int, double, char и выводим значения этих объектов с помощью метода println().
#код
🧩 Задача: Поиск Знаменитости. Метод двух указателей

Знаменитость — человек, который не знает никого в компании, но при этом каждый знает его самого. Ваша задача — найти такого человека.

Автор рассказывает как оптимально решить эту задачу с использованием двух указателей. Пример кода написан на Java.

Перейти к просмотру
👨‍🏫Библиотека программиста» находится в поиске преподавателя на курс по базам данных SQL

Proglib — это не только медиа, но еще и образовательный проект. Сейчас мы разрабатываем курс по базам данных SQL и ищем преподавателя в «Академию». Если вы опытный и творческий эксперт в сфере, желающий делиться знаниями и обучать, мы будем рады поработать с вами в команде.

Что важно:
● Готовность сотрудничать в формате part-time
● Опыт работы с базами данных от 2 лет
● Понимание базового и продвинутого SQL
● Знание и умение работать: с индексами, PL SQL-процедурами, организацией миграций, агрегатными, аналитическими и оконными функциями, вложенными запросами, опыт проектирования схем данных, OLAP-преобразованиями
● Умение объяснять простые вещи легко и захватывающе

Что нужно будет делать:
● Проектирование программы курса
● Создание тематических модулей и заданий к ним
● Проведение онлайн событий и Q and A встреч со студентами
● Запись видеоуроков

Мотивация:
● До 200 000 рублей
● Доступ к курсам академии
● Поддержка методистом

➡️ Заполнить анкету для отклика ⬅️
Интерфейс Delayed

Интерфейс Delayed используется для объектов, у которых есть время истечения задержки.
Он позволяет организовать очередь объектов с учетом их задержки.

Основные методы:
getDelay(TimeUnit unit) — возвращает оставшееся время задержки в указанных единицах измерения.
compareTo(Delayed o) — сравнивает текущий объект с переданным по оставшемуся времени задержки.

Этот интерфейс реализуется классами, которые должны храниться в очереди с задержкой, например в DelayQueue.
#код
Очередной #дайджест по Java:

Асинхронный API First
Это принцип разработки, по которому API вашего приложения является наиболее важной частью вашего приложения.

Как упростить себе жизнь: удобные юнит-тесты с JUnit и AssertJ
О практике использования фреймворка для модульного тестирования JUnit 5.

Набор инструментов backend reliability инженера
О зонах ответственности BRE команды и инструментах, которые применяются для поддержания стабильной работы бэкенда на высоком уровне.

Руководство про Pattern Matching в Java 21
Про новые возможности сопоставления с образцом (Pattern Matching) в Java 21.
🎤 QCon SF 2023: как Netflix на самом деле использует Java, Пол Баккер

Пол Баккер, разработчик в команде Java-платформы Netflix и соавтор книги Java 9 Modularity, положил конец мифу о том, что «Netflix — это микросервисы RxJava, а всем заправляют Hystrix, Spring Cloud и Chaos Monkeys».

Баккер описал оригинальную архитектуру знакомого приложения Netflix для просмотра фильмов, доступ к которому осуществляется через ТВ и другие устройства, подключаемые к API-серверу с поддержкой Groovy с помощью REST и gRPC-подключений к различным сервисам.

Также Пол представил другие архитектурные модели и отметил, что Java был и остается в активной разработке в Netflix. Они поддерживают дистрибутив OpenJDK Azul Zulu 17 с активным тестированием на JDK 21, запуская ~2800 приложений, созданных с использованием ~1500 библиотек. Gradle вместе с Nebula, коллекцией плагинов Gradle, созданных Netflix, и IntelliJ IDEA являются их предпочтительными инструментами сборки.

👉 Подробнее

#проектирование_систем #java
Есть ли какие-либо рекомендации о том, какие поля следует использовать при подсчете hashCode()?

Общий совет: выбирать поля, которые с большой долью вероятности будут различаться. Для этого необходимо использовать уникальные, лучше всего примитивные поля, например, такие как id, uuid. При этом нужно следовать правилу, если поля задействованы при вычислении hashCode(), то они должны быть задействованы и при выполнении equals().
#вопросы_с_собеседований
SoftHashMap

SoftHashMap — это реализация интерфейса Map, которая использует слабые ссылки для хранения ключей и значений.
От обычной HashMap она отличается тем, что при нехватке памяти она может автоматически удалять наименее используемые элементы.

SoftHashMap часто применяется для реализации кешей, где допустима потеря части данных.
Например, кеш изображений в приложении. Если память закончилась, то часть картинок будет удалена из SoftHashMap, но основная часть приложения продолжит работать.
#код
Разработка децентрализованных приложений на Spring Boot: инструменты Web3 Tech

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

Читать статью
Вы используете механическую клавиатуру для печати или мембранную?
#интерактив