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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Два новых канала от 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.
✍️«Библиотека программиста» собирает кейсы использования нейросетей

Какие самые необычные задачи вы выполняли с помощью нейросетей? Может быть, вы просили ИИ пройти тестирование по правилам безопасности или писали с его помощью заявление на увольнение?

Заполняйте форму — лучшие истории появятся в нашей подборке по теме.

👉Ссылка тут👈
Как преобразовать строку в Windows-1251?

В Java вы можете использовать классы Charset и String для преобразования строки из одной кодировки в другую. Пример на картинке выше.

Обратите внимание, что некоторые символы, которые существуют в кодировке Windows-1251, могут отсутствовать в кодировке UTF-16, поэтому процесс преобразования может вызвать потерю данных.
#код