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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
🐇 Как проводить успешные переговоры: 3 правила активного слушания

Разбираемся, как избежать факапа на важных переговорах.

🔗 Основной сайт
🔗 Зеркало
Метод trim()

Возвращает копию данной строки, в которой удаляются начальные и конечные пробелы, или данную строку, если она не имеет начальных или конечных пробелов.
#код
В работе используете linux, macOS или Windows? Расскажите в комментариях ⬇️
#интерактив
Реализации исключения при делении на ноль

В этом примере мы создаем собственное исключение DivideByZeroException, которое наследуется от класса Exception. Затем в блоке try мы проверяем, если делитель равен нулю, то мы бросаем это исключение с соответствующим сообщением. В блоке catch мы перехватываем исключение и выводим его сообщение об ошибке.

Обратите внимание, что если вы пытаетесь поделить ноль на ноль, будет брошено исключение типа ArithmeticException, которое уже предусмотрено в Java для обработки ситуаций деления на ноль.
#код
Особенности разработки автотестов различными инструментами, а также статистика по использованию

В статье автор пробует разобраться в автоматизации тестирования ПО, делает обзор сервисов для автоматического тестирования, выясняет, какой язык программирования лучше подходит для QA Automation. Вся информация основана в том числе на реальных событиях и реальном опыте.

Читать статью
⚙️ 3 совета по использованию Git для начинающих

Разберем полезные советы по работе с Git: просмотр журналов, сводки коммита и сравним команды merge и rebase.

Читать статью
Узнаем размер каталога с помощью Java

Размер файлов в Java можно получить с помощью класса File. Встроенная функция 'fileName.length()' используется для определения размера файла в байтах.

Каталог может содержать N файлов, для расчета размера каталога требуется суммирование размеров всех файлов.

Подробнее можно посмотреть здесь.
#код
10 полезных книг для Java программиста на русском языке

Небольшая подборка интересных и полезных книг для Java программиста по самому языку, фреймворкам и программированию в целом.

🔗 Основной сайт
🔗 Зеркало
Spring Transactions

Spring Transactions — это механизм, предоставляемый Spring Framework, который позволяет управлять транзакциями в Java-приложениях. Он предоставляет абстракцию уровня транзакций, которая скрывает детали управления транзакциями в низкоуровневых API базы данных, и упрощает создание транзакционных приложений.

В коде на первом изображении мы используем аннотацию @Transactional для указания того, что метод createUser() должен выполняться в контексте транзакции. Все операции с базой данных, включая вставку новой записи, будут обернуты в транзакцию.

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

В результате выполнения данного кода изменения в базе данных будут отменены, так как выполнявшиеся операции были выполнены в контексте транзакции, которая была отменена после генерации исключения.
#код
Каким будет результат выполнения следующего кода?

Объяснение: В этом коде мы вызываем метод divide, который выполняет деление двух чисел. При делении на ноль возникает исключение ArithmeticException, которое перехватывается в блоке catch. В блоке finally всегда выполняется инструкция return 0, поэтому в итоге результатом будет значение -1.

Этот вопрос проверяет понимание исключений, блоков try-catch-finally и порядка выполнения кода в Java.
#вопросы_с_собеседований
Всё о Java / Войти в IT после 30 / Интервью с Senior Java Developer

Роман пришел в IT в 30 лет после курсов, что совершенно не помешало развить в себе отличные навыки разработки. В выпуске обсудили историю Романа, разобрали Java EE, Spring, Hibernate, Criteria API, JSP, Maven, Ant, Android SDK, среды разработки, фишки войти в айти и менторинга и много других не менее умных и интересных вещей из мира Java. А еще нормально зацепили Kotlin.

Смотреть видео
Рассказываем про мир job-сайтов: где программисту опубликовать резюме, чтобы быстрее найти работу в IT.

🔗 Основной сайт
🔗 Зеркало
Пузырьковая сортировка

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

Пузырьковая сортировка весьма и весьма медленная, с временной сложностью O(N²), так как мы имеем вложенные циклы. Внешний проход по элементам выполняется за N раз, внутренний — тоже N раз, и в итоге мы получаем N*N, N² итераций.
#код
Очередной #дайджест статей по Java:

☕️ Инструментация байт-кода Java
В рамках текущей статьи рассказано о способах инструментации байт-кода java или, другим языком, внесения изменений в компилированные файлы java .class. Здесь приведены примеры работы с фреймворками Javaassist и ASM и базовое описание байт-кода.

☕️ Симуляция реальности: разбираемся в мок-серверах и пишем свой
Проблематика: проблема черного ящика и почему это вообще нужно решать.

☕️ Эффективное и комплексное устранение утечек памяти в Android
Про OutOfMemoryError и работу GC.

☕️ Особенности разработки автотестов различными инструментами, а также статистика по использованию
Однозначным плюсом внедрения автотестов на проекте является сокращение времени на тестирование и сокращение возможности ошибки при тестировании человеком.

☕️ Добавляем поддержку пользовательского языка в IntelliJ с помощью ANTLR

☕️ Как на самом деле работает Java ClassLoader system? (с картинками)
Будучи разработчиком Java, вы наверняка сталкивались с ClassNotFoundException или NoClassDefFoundError — загадочными сообщениями, которые на мгновение останавливают наш процесс разработки. Класс не найден — понятно по названию, но не найден где? Кто и как его ищет, куда доставляет?

☕️ SpringBoot и вебсокеты: едем в кластер
В этой статье затронута тема горизонтального масштабирования SpringBoot-приложений, использующих вебсокеты. Основная особенность таких приложений — наличие состояния (state). Вебсокеты для работы используют постоянное TCP-соединение, собственно оно и является этим состоянием. А наличие состояния обычно вызывает проблемы при масштабировании.