Библиотека джависта | 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
加入频道
🐔 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: что такое дискавери-команда и чем она занимается

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

🔗 Основной сайт
🔗 Зеркало
Сравнение массивов с Arrays.equals

Чтобы проверить, равны ли два массива с точки зрения их содержимого, Java предоставляет статический метод Arrays.equals . Этот метод будет выполнять параллельную итерацию по массивам для каждой позиции и применять оператор == для каждой пары элементов.
📖 Где учить программирование?

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

Чтобы вы зря не тратили драгоценное время, автор этого видео отобрал лучшие книги, ютуб-каналы, блоги и GitHub-репозитории, которые помогут стать true программистом.

https://youtu.be/M8xaRauiDCk
#вопросы_с_собеседований
Расскажите об интерфейсе SingleThreadModel.

Интерфейс SingleThreadModel является маркерным - в нем не объявлен ни один метод, однако, если сервлет реализует этот интерфейс, то метод service() этого сервлета гарантированно не будет одновременно выполняться в двух потоках. Контейнер сервлетов либо синхронизирует обращения к единственному экземпляру, либо обеспечивает поддержку пула экземпляров и перенаправление запроса свободному сервлету. Другими словами, контейнер гарантирует отсутствие конфликтов при одновременном обращении к переменным или методам экземпляра сервлета. Однако существуют также и другие разделяемые ресурсы, которые даже при использовании этого интерфейса остаются всё так же доступны обработчикам запросов в других потоках. Т.е. пользы от использования этого интерфейса немного и в спецификации Servlet 2.4 он был объявлен deprecated.
#вопросы_с_собеседований
Какими свойствами обладает порождаемое equals() отношение эквивалентности?

☕️ Рефлексивность: для любой ссылки на значение x, x.equals(x) вернет true;
☕️ Симметричность: для любых ссылок на значения x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) возвращает true.
☕️ Транзитивность: для любых ссылок на значения x, y и z, если x.equals(y) и y.equals(z) возвращают true, тогда и x.equals(z) вернёт true;
☕️ Непротиворечивость: для любых ссылок на значения х и у, если несколько раз вызвать х.equals(y), постоянно будет возвращаться значение true либо постоянно будет возвращаться значение false при условии, что никакая информация, используемая при сравнении объектов, не поменялась.

Для любой ненулевой ссылки на значение х выражение х.equals(null) должно возвращать false.
Как написать на Java функцию, подобную sizeof в C

Если вы только начинаете изучать Java и уже имеете опыт программирования на С, то можете заметить разницу между этими двумя языками. К примеру, String — это объект в Java, а не массив символов с конечным NULL. Аналогично, в Java нет оператора sizeof(). Все примитивы имеют заранее определенный размер, например int — 4 байта, char — 2 байта, short — 2 байта, long и float — 8 байт и так далее.

https://nuancesprog.ru/p/16592/
💫 Новогодний розыгрыш от Proglib academy!

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

Подарки под елкой:
🥇 Apple AirPods Pro 2
🥈 Курс «Математика для Data Science
🥉 Курс: «Алгоритмы и структуры данных»

Подробнее об условиях участия, читайте тут: https://proglib.io/w/e72668b2