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

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

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


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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
⚡️Шпаргалка по Maven

Maven — один из самых популярных и удобных инструментов для управления и сборки проектов на Java. Сохраняй и делись с друзьями!
«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях

Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.

Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.

Ссылка тут.
Преобразуем строку в объект

Используем метод Class.forName(). Этот метод принимает параметр className, который является классом, для которого требуется его экземпляр.
#код
Очередной #дайджест по Java:

☕️ Как задеплоить монолитный pet проект на Java с 0 и не сойти с ума…
Статья содержит шаги по развертыванию Java приложения с помощью GitHub Actions на серверах AWS EC2.

☕️ Авторизация в Spring Boot приложении с Spring Security 3.1.0 и PostgreSQL
Гайд для новичков.

☕️ Из кладовщика в разработчики
Автор рассказывает об опыте переквалификации от должности рабочего на складе до профессии backend-разработчика в международной компании на Кипре. Без рекламы курсов.

☕️ Приручаем Liquibase. Как скормить базе данных список из 10К офисов, чтобы потом не писать костыли?
Автор делится своим опытом создания миграций файлов с большим списком данных при помощи Liquibase.

☕️ Вопрос на сертификационном экзамене: применение Threads и Executors
Продолжение разбора вопросов из Java-сертификации от Учебного центра IBS.
Как преобразовать строку в Windows-1251?

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

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

TL;DR
☕️ загрузка класса не всегда сопровождается его проверкой и инициализацией
☕️ проверка байт-кода может вызвать загрузку класса
☕️ в некоторых случаях проверку байт-кода можно отключить для ускорения запуски приложения

Читать статью
Метод ordinal() в Enum

Метод ordinal() является частью класса Enum. Класс Enum используется для создания типов данных, представляющих ограниченное множество значений, таких как перечисления (enumerations). Метод ordinal() возвращает порядковый номер (индекс) конкретного элемента перечисления в объявленном порядке.
#код
Предположим, есть метод, который может выбросить IOException и FileNotFoundException. В какой последовательности должны идти блоки catch? Сколько блоков catch будет выполнено?

Общее правило: обрабатывать исключения нужно от «младшего» к старшему. Т.е. нельзя поставить в первый блок catch(Exception ex) {}, иначе все дальнейшие блоки catch() уже ничего не смогут обработать, т.к. любое исключение будет соответствовать обработчику catch(Exception ex).

Таким образом, исходя из факта, что FileNotFoundException extends IOException сначала нужно обработать FileNotFoundException, а затем уже IOException:

void method() {
try {
//...
} catch (FileNotFoundException ex) {
//...
} catch (IOException ex) {
//...
}
}
#вопросы_с_собеседований
unchecked exception

unchecked exception (непроверяемое исключение) относится к исключениям, которые не требуется обязательно обрабатывать или объявлять в секции throws метода. Эти исключения наследуются от класса RuntimeException или его подклассов. Они обычно свидетельствуют о ситуациях, которые могут возникнуть в ходе выполнения программы, но которые, как правило, связаны с ошибками программирования или непредвиденными ситуациями.
#код
Как скомпилировать Spring Boot приложение в native image с помощью GraalVm и развернуть его с помощью Docker

Эта статья — туториал, как подружить между собой Spring Boot, GraalVm, Liquibase и Docker, какие могут возникнуть подводные камни и как их можно обойти.

Читать статью

Кстати, у нас есть канал с вопросами с собеседований по Java. Подписывайтесь!
Ищем копирайтера

Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.

Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).

Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.

Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.

👉Присылайте свои резюме: [email protected]
🗝 Просто про SOLID

SOLID — самые популярные и самые лучшие подходы к разработке программного обеспечения в языка с ООП.

Автор рассказывает про все части SOLID, показывает принципы на картинках и пишет код на Java для примеров.

Смотреть видео
Считаете ли вы, что в вашей компании уделяется слишком много времени на ненужные созвоны и мало времени на разработку?
#интерактив
serialVersionUID

serialVersionUID является статическим полем, которое используется для контроля версий сериализуемых классов. Оно используется для определения уникальной идентификации класса при сериализации и десериализации объектов. serialVersionUID помогает обеспечить совместимость между классами при изменении их структуры.

Когда класс сериализуется, serialVersionUID записывается в поток данных вместе с объектом. При десериализации объекта Java сравнивает serialVersionUID, прочитанный из потока данных, со значением текущего serialVersionUID в классе:
☕️ если они совпадают, то класс считается совместимым и процесс десериализации может продолжаться.
☕️ если значения serialVersionUID отличаются, будет сгенерировано исключение InvalidClassException, указывающее на несовместимость версий класса.
#код
Что означает CAP-теорема?

CAP-теорема, также известная как теорема Брюэра, является концептуальной основой для понимания распределенных систем.

Она была предложена в 2000 году Эриком Брюэром и формулирует три фундаментальных свойства, которые невозможно обеспечить одновременно в распределенной системе данных:
☕️ Согласованность (Consistency);
☕️ Доступность (Availability);
☕️ Устойчивость к разделению (Partition tolerance).

Согласно CAP-теореме, в распределенной системе данных можно гарантировать только два из трех свойств:
☕️ Согласованность и доступность (CA);
☕️ Согласованность и устойчивость к разделению (CP);
☕️ Доступность и устойчивость к разделению (AP).
Выбор между этими свойствами зависит от требований и характеристик конкретной системы и ее целей.
#вопросы_с_собеседований
🔍Насколько легко «войти в айти»?

IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.

👉Пройдите наш 10-минутный опрос по ссылке.
💰 Обзор зарплат: сколько сейчас зарабатывают айтишники

В этой статье обсуждаем самую животрепещущую тему — зарплату. Присоединяйтесь :)

🔗 Читать статью
🔗 Зеркало
Комбинирование хеш-таблиц

Комбинирование двух хеш-таблиц вручную через цикл очень неэффективно. Вот альтернативное решение этой проблемы, которое вам возможно понравится.
#код
Приходилось ли вам переходить на более младшую позицию в другую компанию? Например, с Senior на Middle при релокации.
#интерактив