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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
#вопросы_с_собеседований
Как поведёт себя уже инстанциированный итератор для collection, если вызвать collection.remove()?

При следующем вызове методов итератора будет выброшено ConcurrentModificationException.
👩‍💻 Телеграм бот-игра на JAVA в 100 строк

Пишем телеграм бота, реализующего простую игру в стиле "камень-ножницы-бумага" на чистой джава + библиотека telegram api. Для пущей сложности я делаю это без БД и при этом пытаюсь выдернуть информацию о том, в каком чате происходит дело (может пригодиться для хранения какой-либо статистики)
Please open Telegram to view this post
VIEW IN TELEGRAM
⚖️ Работа или жизнь: принципы Work-life balance

Если ты работаешь 25/8, а переработка для тебя стала обыденностью – эта статья для тебя. Рассказываем об угрозах трудоголизма и как найти тот самый баланс.

🔗 Основной сайт
🔗 Зеркало
Друзья, представляем вашему вниманию шпаргалку по теме JDBC.

Источник
🔎 10 причин, почему тебя не берут на работу в ИT

«Библиотека программиста» выделила 10 наиболее распространенных ошибок начинающих специалистов при попытке устроится на работу.

🔗 Основной сайт
🔗 Зеркало
Использование паттернов Event Sourcing и CQRS для разработки приложения на Spring Boot и Axon Framework

Axon — это один из немногих фреймворков, который позволяет создавать гибкие микросервисные решения, используя архитектурные паттерны Event Sourcing и CQRS.

Подход Event Sourcing сильно отличается от обычного метода создания приложений, когда для сохранения, изменения и выборки состояния объектов используется одно и тоже хранилище в базе данных.

В этой статье мы создадим простое приложение на примере библиотеки книг с использованием Spring Boot и Axon Framework.

https://telegra.ph/Ispolzovanie-patternov-Event-Sourcing-i-CQRS-dlya-razrabotki-prilozheniya-na-Spring-Boot-i-Axon-Framework-05-10
👩‍💻 Java. Лямбда-выражения.

В этом видео автор рассказывает о том, что такое лямбда-выражения в языке программирования Java. На примерах показывает, для чего нужны лямбды, и какую роль они играют при написании кода в функциональном стиле.
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишем свой первый сервер на Java и Spring Boot

В этой статье мы поговорим о разработке и архитектуре современных web-приложений и разработаем серверную часть простого приложения, добавляющего пользователей и их посты. Приложение напишем на самом распространённом и востребованном Java-фреймворке – Spring Boot.

🔗 Основной сайт
🔗 Зеркало
Telegram-бот счётчик сообщений на Java и Spring Boot

В этой статье я покажу, как написать Telegram-бот на Java с использованием Spring Boot, PostgreSQL и JPA. Также создадим исполняемый jar-файл. Сам же бот будет подсчитывать сообщения от пользователей и записывать эти данные в БД.

Читать статью
Какое худшее время работы метода contains() для элемента, который есть в LinkedList?

O(N). Время поиска элемента линейно пропорционально количеству элементов в списке.
Новая подборка Java-новостей от InfoQ:
✔️ Стал доступен билд № 31 для JDK 20 (ранний доступ)
✔️ Стал доступен билд № 5 для JDK 21 (ранний доступ)
✔️ Выпущен новый релиз Spring Framework, версии 6.0.4
и д.р.

Приятного чтения!

Читать статью
#вопросы_с_собеседований
Почему не рекомендуется использовать метод Thread.stop()?

При принудительной остановке (приостановке) потока, stop() прерывает поток в недетерменированном месте выполнения, в результате становится совершенно непонятно, что делать с принадлежащими ему ресурсами. Поток может открыть сетевое соединение - что в таком случае делать с данными, которые еще не вычитаны? Где гарантия, что после дальнейшего запуска потока (в случае приостановки) он сможет их дочитать? Если поток блокировал разделяемый ресурс, то как снять эту блокировку и не переведёт ли принудительное снятие к нарушению консистентности системы? То же самое можно расширить и на случай соединения с базой данных: если поток остановят посередине транзакции, то кто ее будет закрывать? Кто и как будет разблокировать ресурсы?
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Бесплатный курс для всех, кто любит качественные IT-публикации и хочет научиться интересно писать о программировании либо улучшить навыки письма.

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

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

Материалы регулярно дополняются, обновляются и корректируется. Отвечаем на все учебные вопросы в комментариях курса.

Как стать автором «Библиотеки программиста» и получать гонорары за статьи?
➡️ Заполните анкету.
Если все ок, мы свяжемся с вами и обсудим дальнейшие шаги.
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Почему нельзя использовать byte[] в качестве ключа в HashMap?

Хэш-код массива не зависит от хранимых в нем элементов, а присваивается при создании массива (метод вычисления хэш-кода массива не переопределен и вычисляется по стандартному Object.hashCode() на основании адреса массива). Так же у массивов не переопределен equals и выполняется сравнение указателей. Это приводит к тому, что обратиться к сохраненному с ключом-массивом элементу не получится при использовании другого массива такого же размера и с такими же элементами, доступ можно осуществить лишь в одном случае — при использовании той же самой ссылки на массив, что использовалась для сохранения элемента.
👩‍💻 Рисуем звук. Почувствуй себя нейросетью. Java, Guice

Сегодня java, guice и другие - помогут нам записать звук в представление чуть более непонятное чем эквалайзер (по крайней мере для меня). Вы при желании можете записать что-то другое.
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседований
Как написать собственное («пользовательское») исключение?

Необходимо унаследоваться от базового класса требуемого типа исключений (например, от Exception или RuntimeException).
Для ArrayList или для LinkedList операция добавления элемента в середину (list.add(list.size()/2, newElement)) медленнее?

Для ArrayList:
• проверка массива на вместимость. Если вместимости недостаточно, то увеличение размера массива и копирование всех элементов в новый массив (O(N));
• копирование всех элементов, расположенных правее от позиции вставки, на одну позицию вправо (O(N));
• вставка элемента (O(1)).

Для LinkedList:
• поиск позиции вставки (O(N));
• вставка элемента (O(1)).

В худшем случае вставка в середину списка эффективнее для LinkedList. В остальных - скорее всего, для ArrayList, поскольку копирование элементов осуществляется за счет вызова быстрого системного метода System.arraycopy().