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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Про какой учебный проект вы рассказывали/показывали его на первом собеседовании?
#интерактив
Узнаем разницу между 2 датами, представленными в виде строк

Для вычисления разницы между двумя датами, представленными в виде строк, можно использовать классы java.time.LocalDate и java.time.temporal.ChronoUnit из пакета java.time.

В этом примере мы используем метод LocalDate.parse() для преобразования строковых значений в объекты типа LocalDate. Затем мы используем метод ChronoUnit.between() для вычисления разницы между двумя датами в днях, месяцах и годах.

Обратите внимание, что вы должны использовать формат даты "yyyy-MM-dd" для парсинга строковых значений даты. Если ваши строки даты имеют другой формат, вам может потребоваться использовать другой метод для преобразования их в объекты LocalDate.
#код
Расскажите о типах шаблонов проектирования.

✔️Основные (Fundamental) — основные строительные блоки других шаблонов. Большинство других шаблонов использует эти шаблоны в той или иной форме.
✔️Порождающие шаблоны (Creational) — шаблоны проектирования, которые абстрагируют процесс создания экземпляра. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять созданный объект, а шаблон, порождающий объекты, делегирует создание объектов другому объекту.
✔️Структурные шаблоны (Structural) определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов или его реализацию, позволяя облегчить разработку и оптимизировать программу.
✔️Поведенческие шаблоны (Behavioral) определяют взаимодействие между объектами, увеличивая таким образом его гибкость.
#вопросы_с_собеседований
Оператор instanceof

Оператор java instanceof используется для проверки того, является ли объект экземпляром указанного типа (класса или подкласса или интерфейса). Во время выполнения результат оператора instanceof равен true, если значение выражения не равно null.

Это важное свойство операции instanceof, которое делает ее полезной для проверки приведения типов.
#код
Использование Spring Cloud Gateway в качестве OAuth2 клиента и KeyCloak для защиты служб

В первую очередь данная статья для тех, кто только пытаются освоить технологии Spring Cloud и KeyCloak, но уже имеют базовое представление о них.

Смотреть статью
Представьте, что вы за час можете научиться чему угодно — что бы это было?
#интерактив
Два новых канала от Proglib

Недавно мы запустили два канала для джавистов, которые помогут вам практиковать свои знания и готовиться к собеседованиям 💪

👉Библиотека Java для собеса — канал, в котором мы выкладываем наши уже традиционные вопросы с собеседований

👉Библиотека задач по Java — канал с задачами, тестами, квизами и, конечно, кодом

Бегом подписываться 🏃
Переименовываем файл

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

#код

👉Больше кода и задач в нашем канале «Библиотека задач по Java»
Получение обратного массива

Используем библиотеку Apache Commons Lang.

Библиотека Apache Commons Lang представляет собой набор служебных классов для упрощения работы с классами пакета java.lang.*.
#код
Какие два класса не наследуются от Object?

Ответ: не ведитесь на провокации, нет таких классов: все классы прямо или через предков наследуются от класса Object!
«Библиотека программиста» в поиске контент-менеджера для ведения телеграм-каналов

Ищем человека, который грамотно пишет, разбирается в контенте и в одной из этих трех тем:
👉Data Science
👉Frontend
👉мобильная разработка

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Подробнее о вакансии и форма для отклика — по ссылке.

Ждем вас в команде!
Prototype

В Java паттерн Prototype используется для создания новых объектов путем клонирования существующих объектов, вместо создания новых объектов с помощью конструкторов. Prototype позволяет создавать копии объектов с минимальными затратами и избегать сложной логики инициализации объектов.

Для реализации этого паттерна необходимо, чтобы классы имели возможность клонирования, что достигается реализацией интерфейса Cloneable и переопределением метода clone().

В этом примере класс Sheep имеет два приватных поля name и color, а также соответствующие геттеры и сеттеры. Класс также имплементирует интерфейс Cloneable и переопределяет метод clone() для создания копии объекта.

В main мы создаем оригинальный объект, клонируем его с помощью метода clone() и получаем клонированный объект clonedSheep. Затем мы изменяем его параметры и выводим результат.
#код
В чем разница между Thread.sleep() и Thread.yield()?

Thread.sleep(): этот метод приостанавливает выполнение текущего потока на заданное количество времени. Время задается в миллисекундах и указывается в качестве аргумента метода. При вызове Thread.sleep() поток переходит в состояние ожидания и не выполняет код в течение указанного периода времени. После истечения времени поток снова становится готовым к выполнению. Вызов Thread.sleep() может сгенерировать исключение InterruptedException, поэтому необходимо обрабатывать его или пробрасывать.

Thread.yield(): этот метод предоставляет намек планировщику потоков на то, что поток, вызвавший yield(), готов уступить процессорное время другим потокам с тем же приоритетом. Однако это рекомендация, а не гарантия. Вызов Thread.yield() приводит к тому, что текущий поток переходит из исполняемого в состояние готовности, чтобы другие потоки могли получить доступ к процессору. Однако, если нет других готовых потоков с тем же приоритетом, поток может продолжить выполнение.
#вопросы_с_собеседований
Код, задачи и тесты по Java📚

Напоминаем, что мы запустили канал, в котором разбираемся в коде и проверяем свои знания с помощью тестов🤓

👉Подписывайтесь на «Библиотеку задач по Java»
Свойство типа Controller Service в кастомном процессоре NiFi

В этой короткой статье показано, как использовать в качестве одного из свойств кастомного процессора NiFi стандартную службу Controller Service, а также как написать тест для такого процессора. В качестве примера использована стандартную служба SSLContextService.

Читать статью
Очередной #дайджест по Java:

✍️ Опыт Сдачи: Oracle Certified Professional: Java SE 11 Developer 1Z0-819
Публикация для тех кто планирует сдавать OCP от Oracle (с личным опытом автора).

✍️ JavaDoc: добро или необходимое зло?
Рассказ о том, принёс ли JavaDoc пользу, а также немного слов о том, где усилия по JavaDoc были избыточны.

✍️ Как VMware создала проблему, а мы ее решили
Любопытный разбор кейса.

✍️ Одна из возможных версий переезда с MySQL на PostgreSQL
Автор рассказывает о подводных камнях переезда.

✍️ Разница между загрузкой и инициализацией классов в Java на любопытном примере
Статья о некоторых тонкостях загрузки и инициализации классов и немного о производительности.

👉Больше кода и задач в нашем канале «Библиотека задач по Java»
Какой сертификат вы бы посоветовали получить?
#интерактив
Метод repeat()

Этот метод копирует содержимое строки заданное количество раз и возвращает результат в одной строке.

Синтаксис: String repeat(int count).
#код
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?

Равные объекты должны возвращать одинаковые хэш коды. При переопределении equals() нужно обязательно переопределять и метод hashCode().
#вопросы_с_собеседований