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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bbda1b17b35b6c1a55c4
加入频道
Что такое мёртвая нить?

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

Чтобы избежать мёртвой нити, следует стремиться к тому, чтобы нити блокировали ресурсы в одном и том же порядке. Если это невозможно, можно использовать техники, такие как использование метода tryLock() из java.util.concurrent.locks.Lock, которые позволяют более гибко управлять блокировками и избегать мёртвой нити.

#для_начинающих
🤔 Очередной #дайджет для джавистов

🔺 Kotlin Explorer — инструмент для быстрого и эффективного реверс-инжиниринга Kotlin кода в Java байткод, Android DEX и OAT

🔺 Spring Boot и Apache Camel — как интегрировать опенсорсный фреймворк и Spring Boot

🔺 VisualVM — анализируйте использование памяти, потребление процессора и поведение потоков для оптимизации вашего приложения

🔺 Модульное тестирование вашей архитектуры Java — начните внедрять свою архитектуру в течение 30 минут, используя уже имеющуюся установку

🔺 Spring Boot 3.2.2 уже доступен — пофиксили 53 бага, улучшили документацию и обновили зависимости
🧑‍🍳🧑‍🍳 Apache Maven — введение в автоматизированную сборку проектов

В статье разбирается один из сборщиков проектов Apache Maven. Все начнется с установки, настройки и сборки первого проекта.

Apache Maven — это фреймворк по автоматизации и сборки Java-проектов. Обычно просто называют Maven.

Подробную информацию всегда можно тут.

Продолжить чтение

#гайд
Х5 Backend Meetup

1 февраля в 19:00 состоится третий Backend Meetup от X5 Tech. На этот раз снова собирается бэкенд-сообщество, чтобы обсудить 4 доклада от специалистов по Python и Java. Ждут вcех в пространстве «Весна» и в онлайн-трансляции.

Программа:

DDD в D. Безбородые решения в бородатом стеке (DDD в Django)
Каждый раз, начиная новый проект, мы хотим сделать всё хорошо. Но через некоторое время проект превращается в легаси, которое тяжело изменять.

ElasticSearch как база данных нулевой нормальности
Спикер поделится практическим опытом использования Open Source-системы ElasticSearch в качестве альтернативы привычным реляционным базам данных. О разработке схемы данных, плюсах и минусах, границах применимости.

Прагматичный взгляд на разработку. Почему кодинг — не главное
Автор расскажет, почему написание кода — всего лишь часть работы разработчика, как прагматичный подход может спасти от замены на СhatGPT и на чём нужно сосредоточиться, чтобы приносить максимальную пользу команде.

Чистая архитектура в монолите
Спикер расскажет о предпосылках использования чистой архитектуры и проблемах, с которыми он столкнулся при работе с толстым слоем представления и раздутыми моделями в монолите с фреймворком на паттерне Active Record.
Как получить доступ к переопределенным методам родительского класса?

Ответ: С помощью ключевого слова super мы можем обратиться к любому члену родительского класса — методу или полю, если они не определены с модификатором private.
Метод dropWhile был введен в интерфейсе Stream в JDK 9. Этот метод позволяет пропускать элементы в начале потока данных, пока они удовлетворяют определенному условию, и возвращает новый поток, начиная с первого элемента, который не соответствует условию.

В примере метод dropWhile используется для пропуска элементов в потоке до тех пор, пока они меньше 0. После первого элемента, не соответствующего условию, оставшиеся элементы добавляются в новый поток.
Mastering MEAN Stack: Build full stack applications using MongoDB, Express.js, Angular, and Node.js (2023)
Автор: Pinakin Ashok Chaubal
Количество страниц: 260

#js

Книга представляет собой исчерпывающее руководство по разработке с использованием стека MEAN (MongoDB, Express.js, Angular и Node.js). Книга знакомит с основами полностековой разработки и преимуществами стека MEAN. В ней рассказывается об установке и настройке компонентов MEAN, а также о том, как их подключать для создания мощных полностековых приложений. В книге также рассматриваются механизмы безопасности, такие как аутентификация и авторизация, обеспечивающие безопасность приложений. Поможет вам приобрести навыки разработки фронт-энда с помощью Angular и интеграции бэкЭнда с помощью Node.js. В книге также рассматриваются вопросы обновления данных в реальном времени с NATS Streaming, методы автоматизированного тестирования и интеграция дополнительных сервисов.

📌 Всё самое полезное читайте в нашем канале Frontend 📌

Скачать книгу
👒 Весенние конференции JRG

Одни мероприятия будут полностью онлайновыми, а другие пройдут в Москве (но и к таким возможно подключиться удалённо).

Flow (системный и бизнес-анализ), 12 марта, онлайн
SafeCode (безопасность приложений), 13-14 марта, онлайн
TechTrain (профессиональный рост в IT), 6 апреля
Heisenbug (тестирование), 16 апреля в онлайне и 22-23 апреля в Москве
JPoint (Java-разработка), 17 апреля в онлайне и 24-25 апреля в Москве

#мероприятие
🤔 Очередной #дайджет для джавистов

🔆 Spring Data JPA и Hibernate — решаем проблему динамически изменяемого запроса к базам данных

🔆 Эмулятор QUIK — как наладить тестирование вендорного продукта

🔆 Нагруженные сервисы и нестандартные практики разработки — о нагруженных сервисах, нестандартных практиках в процессах и моделях мотивации людей

🔆 Компоновка аннотаций в Spring — как поместить несколько аннотаций в одну и использовать только ее и как передавать атрибуты в аннотации которые вы объединили

🔆 Разбор задач по программированию и алгоритмам для попадания в Google — разбор 3 типов задач для прохождения собеседования в ведущие технологические компании мира
Какое ключевое слово используется в Java для возвращения величины внутри метода?
Anonymous Quiz
3%
void
1%
break
91%
return
5%
get
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Anonymous Inner Class

Anonymous Inner Class (Анонимный Внутренний Класс) — это специальный тип внутреннего класса, который определяется без имени и создается «на лету» внутри блока кода или выражения. Он является удобным способом создания классов, когда класс нужен только для реализации какого-то интерфейса или абстрактного класса, и нет необходимости создавать отдельный именованный класс.

Анонимные внутренние классы обычно используются для создания объектов, которые реализуют интерфейсы или наследуются от абстрактных классов. Они часто используются в событийном программировании и обработке событий в пользовательском интерфейсе, где нужно определить обратный вызов (callback) или обработчик (handler) на месте.
java.time.LocalDate

Это класс из пакета java.time, введенного в Java 8, который предоставляет удобные средства для работы с датами в формате «год-месяц-день». Этот класс представляет собой дату без времени и без учета часовых поясов. Он используется для выполнения операций, связанных только с датами, без учета времени суток.
⚙️⚙️ Framework для автоматизации тестирования на Java

В качестве языка программирования была выбрана Java, сборщик проектов — Maven, среда тестирования — JUnit5.

Для работы с БД выбран Hibernate. Он широко известен как в кругу автоматизаторов, так и в кругу разработчиков. Hibernate — это фреймворк для Java, предназначен для работы с базой данных. Объекты в нем описываются на языке программирования с применением принципов ООП. Запросы в базу можно писать как в стандартном виде SQL, так и с помощью HQL. HQL — это Hibernate Query Language — объектно‑ориентированный язык запросов, который очень похож на SQL, но, в отличие от него, работает с объектами и полями, в то время как SQL работает с таблицами и столбцами в базе.

В статье будет пример работы с базой.

#туториал
Чем отличаются checked и unchecked исключения?

Вопрос формулируют по-разному, суть вопроса — объяснение иерархии классов исключений. Подробно описано в документации.

Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе throws; перехватывать или добавлять в throws в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws.

♦️ Throwable — базовый класс для всего что может быть использовано с оператором throw и в конструкции try-catch
♦️ RuntimeException — «нормальные» unchecked-исключения
♦️ Error — unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий
♦️ Exception (кроме RuntimeException) — checked исключения
🤔 Очередной #дайджет для джавистов

🟤 Принципы и шаблоны чистого кода — руководство для специалиста по программному обеспечению

🟤 Рыночные данные в кармане — как получать их быстро и просто с помощью Java/Kotlin и Spring Boot + TinkoffApi

🟤 Подкаст Javaswag — о нагруженных сервисах и нестандартных практиках в процессах

🟤 Задача на миллиард строк — интересная задача и варианты ее решения

🟤 Разбираемся с MavenGate — новая атака на цепочку поставок для Java и Android-приложений