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

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

Для обратной связи: @proglibrary_feeedback_bot

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
RabbitMQ + Spring boot + Docker. Отправляем и получаем сообщения через Producer и Consumer. Пошаговое руководство

Меня зовут Андрей Вербицкий и я столкнулся с тем, что мое знакомство с RabbitMQ, а в частности его запуск на локальной машине и отправка сообщений в очередь с помощью приложения на Spring Boot, вылилась в несколько дней поисков информации о том, как это вообще работает, какие есть сущности и как в итоге переслать это сообщение. Я решил собрать все это в одном месте и сделать из этого практическое руководство, которое поможет из ничего получить рабочий прототип и понять как это работает. Эта статья ориентированная на новичков, которые только хотят познакомиться с RabbitMQ. Целью я поставил максимально простыми словами и по шагам рассказать, как быстро и легко поднять все окружение локально, отправить и получить сообщения через очередь.

https://habr.com/ru/post/703352/
#вопросы_с_собеседований
Какой способ клонирования предпочтительней?

Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования:
• Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод clone());
• Поля для клонирования указываются явно;
• Возможность клонировать даже final поля.
Что нового в Java 20?

Версия Java 20 должна быть выпущена в марте 2023 года, и ожидается, что в ней появится целый ряд изменений и новых функциональных возможностей. Мы подготовили обзор, описывающий, какие JEP с наибольшей вероятностью будут приняты в JDK 20, и какие из них, как мы надеемся, будут приняты в ближайшей перспективе!

https://habr.com/ru/company/piter/blog/705478/
JFreeChart

JFreeChart — это обширная бесплатная библиотека диаграмм для платформы Java(tm), которую можно использовать на стороне клиента (JavaFX и Swing) или на стороне сервера (с экспортом в несколько форматов, включая SVG, PNG и PDF).

Вся документация лежит здесь.
#вопросы_с_собеседований
Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?

Метод clone() объявлен в классе Object с указанием модификатора native, чтобы обеспечить доступ к стандартному механизму поверхностного копирования объектов. Одновременно он объявлен и как protected, чтобы нельзя было вызвать этот метод у не переопределивших его объектов. Непосредственно интерфейс Cloneable является маркерным (не содержит объявлений методов) и нужен только для обозначения самого факта, что данный объект готов к тому, чтобы быть клонированным. Вызов переопределённого метода clone() у не Cloneable объекта вызовет выбрасывание CloneNotSupportedException.
🎄🎁 10 оригинальных подарков айтишнику на Новый год

Айтишники – практичные и неординарные люди, и подарки для них должны быть функциональными и нетривиальными. «Библиотека программиста» решила помочь вам в этом нелегком деле и подыскала несколько вариантов оригинальных презентов.

🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Для чего нужны функциональные интерфейсы UnaryOperator<T>, DoubleUnaryOperator, IntUnaryOperator и LongUnaryOperator?

UnaryOperator<T> (унарный оператор)
принимает в качестве параметра объект типа T, выполняет над ними операции и возвращает результат операций в виде объекта типа T:

UnaryOperator<Integer> operator = x -> x * x;
System.out.println(operator.apply(5)); // 25

☕️ DoubleUnaryOperator - унарный оператор, получающий на вход Double;
☕️ IntUnaryOperator - унарный оператор, получающий на вход Integer;
☕️ LongUnaryOperator - унарный оператор, получающий на вход Long.
🐔 IT и реальный сектор экономики: как мы цифровизировали птицеводство и что из этого получилось

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

🔗 Основной сайт
🔗 Зеркало
#вопросы_с_собеседований
Что такое «конструктор по умолчанию»?

Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».

public class ClassName() {}

Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
JDK Flight Recorder (JFR) - это регистратор событий, встроенный в виртуальную машину Java. 🤓

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

Опыт, приди!
#вопросы_с_собеседований
Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?

У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
#вопросы_с_собеседований
Что такое «денормализация»? Для чего она применяется?

Денормализация базы данных
— это процесс осознанного приведения базы данных к виду, в котором она не будет соответствовать правилам нормализации. Обычно это необходимо для повышения производительности и скорости извлечения данных, за счет увеличения избыточности данных.
#вопросы_с_собеседований
Где и как вы можете использовать приватный конструктор?

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

Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится.
Шпаргалка: Java коллекции

Друзья, представляем вашему вниманию шпаргалку на тему коллекций в Java. 🤓

Хорошей памяти!

Читать статью
#вопросы_с_собеседований
Как можно вывести на экран уникальные квадраты чисел используя метод map()?

Для этого можно использовать Stream. Ответ на картинке.
Зачем нужен equals(). Чем он отличается от операции ==?

Метод equals() - определяет отношение эквивалентности объектов.

При сравнении объектов с помощью == сравнение происходит лишь между ссылками. При сравнении по переопределённому разработчиком equals() - по внутреннему состоянию объектов.
Пишем плагин для IntelliJ IDEA. Ускоряем написание тестов на DTO

Когда пишешь тесты на обширную модель (DTO), ловишь себя на мысли, что сосредоточен не на тестовых данных, а на том, как ловчее избавить себя от написания boilerplate-кода.

Как это сделать? Поискать готовое решение (плагин).

А если его нет? Тогда – написать плагин.

А если не умеешь? Стоит хотя бы начать :)

Читать статью
🏄 50% скидка на все курсы Proglib academy!

Вжух и мы запускаем распродажу курсов до 10 января:

– Математика для Data Science
– Алгоритмы и структуры данных
– Как айтишнику устроиться в международную компанию
– Основы IT для непрограммистов
– Основы программирования на Python
– Frontend Basic: принцип работы современного веба

Выбрать курс вы можете по ссылке 🔗https://proglib.io/w/03f94f58

🔹На курсах мы делимся экспертизой вместе с ТОП- специалистами из Samsung, Revolut, Яндекс, Тинькофф и т.д;
🔹В процессе обучения вы не только прокачиваете скиллы, но и пополняете портфолио;
🔹Это не самообучение. Мы проводим индивидуальную проверку домашних заданий с разбором ошибок и рекомендаций.

🚀Начни год с прорыва!
👥🗺 Product Discovery: что такое дискавери-команда и чем она занимается

Рассказываем: зачем нужно разделение на «дискавери» и «деливери»; в чём суть работы дискавери-команды и кто в неё входит; как запускать полезные продукты дешевле и быстрее конкурентов.

🔗 Основной сайт
🔗 Зеркало