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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Оператор 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().
#вопросы_с_собеседований
Программа для преобразования десятичных чисел в шестнадцатеричные на Java

Воспользуемся методом Integer.toString().

Временная сложность: O(N)
Память: O(1)
#код
Сколько времени в рабочий день тратите на разработку?
#интерактив
Практический IT-интенсив: алгоритмы и структуры данных

🗓️ 14 августа, «NP-трудные задачи: почему их плохо решают».
🎙Дмитрий Коротенко простым языком объяснит, что такое NP-трудные задачи. И в прямом эфире раскажет про примеры, которые встречаются в реальном мире.

👉 Регистрируйтесь по ссылке

🗓️ 22 августа, «Графы: алгоритмы и структуры данных на Python».
🎙Иван Потапов расскажет, как графы представляются в коде, где бывает полезна топологическая сортировка. А также обсудим алгоритмы Дейкстры и Беллмана-Форда.

🗓️ 29 августа, «Собеседование на разработчика: разбор задач и ошибок».
🎙Алексей Бочкарев поделится своим опытом прохождения технических собеседований; разберет распространенные ошибки в коде и расскажет, как правильно подходить к задачам, тестировать решения.

👉Для регистрации и ознакомления с подробной программой перейдите по ссылке: https://proglib.io/w/0612e973

*Компания Meta признана в РФ экстремистской и запрещена
Очередной #дайджест по Java:

☕️ Новый взгляд на Maven-plugin для IDEA — GMaven
О том, как устроен плагин под капотом, его сильных и слабых местах.

☕️ Kafka UI краткий гайд

☕️ Пошушукаемся о Барбаре Лисков или раз и навсегда запоминаем принцип подстановки
Принцип подстановки Лисков (англ. Liskov Substitution Principle, LSP) — принцип организации подтипов в объектно-ориентированном программировании, предложенный Барбарой Лисков в 1987 году.

☕️ Использование Kotlin и WebFlux для выполнения задач ML в Apache Spark на GPU
Это третья статья по теме реализации масштабируемой системы для выполнения задач распределенного машинного обучения на GPU с использованием Java, Kotlin, Spring и Spark.