Библиотека джависта | 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
加入频道
✍️ Как написать отличную документацию: 2 впечатляющих примера с открытым исходным кодом

Хорошая документация экономит время, привлекает контрибьюторов и пользователей. Мы рассмотрим два open-source проекта с образцовой документацией, на которые стоит равняться каждому разработчику.

👉 Читать статью
👉 Зеркало
#дайджест перед выходными для джавистов

slick v3.5.0 — через полтора года после последнего стабильного релиза выпустили новую версию с поддержкой Scala 3

Flavors of shared state in Cats Effect — статья о введении в Shared States. Начинается с простых изоляций на уровне Ref, а заканчивается более продвинутым реальным примером использования с Middleware и IOLocal

Jox 0.1 — virtual-thread friendly каналы для Java

Имплиситы и тайпклассы в Scala — статья будет интересна для начинающих скалистов и по сути является немного переработанным конспектом лекции

Священный грааль GitHub Actions — как автоматизировать создание нативного образа GraalVM с помощью GitHub Actions
💬 Как изменился ваш информационный пузырь за год?

Помните свои информационные предпочтения год назад? Многое изменилось! Социальные сети, мессенджеры, YouTube, подкасты — все эти каналы ежедневно борются за наше внимание. У каждого из нас за год сформировался свой уникальный информационный рацион. Пройдите наш опрос и расскажите, как изменились ваши вкусы в медиапотреблении.

👉 Пройти опрос

Опрос займёт у вас примерно 4 минуты.
🙅‍♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись

Дискриминация в IT — серьезная проблема, с которой сталкиваются до 40% работников. Как распознать притеснения по возрасту, инвалидности или семейному положению и отстоять свои права?

👉 Читать статью
Какие методы класса File вы знаете?

Наиболее используемые методы класса File:
boolean createNewFile(): делает попытку создать новый файл;
boolean delete(): делает попытку удалить каталог или файл;
boolean mkdir(): делает попытку создать новый каталог;
boolean renameTo(File dest): делает попытку переименовать файл или каталог;
boolean exists(): проверяет, существует ли файл или каталог;
String getAbsolutePath(): возвращает абсолютный путь для пути, переданного в конструктор объекта;
String getName(): возвращает краткое имя файла или каталога;
String getParent(): возвращает имя родительского каталога;
boolean isDirectory(): возвращает значение true, если по указанному пути располагается каталог;
boolean isFile(): возвращает значение true, если по указанному пути находится файл;
boolean isHidden(): возвращает значение true, если каталог или файл являются скрытыми;
long length(): возвращает размер файла в байтах;
long lastModified(): возвращает время последнего изменения файла или каталога;
String[] list(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге;
File[] listFiles(): возвращает массив файлов и подкаталогов, которые находятся в определенном каталоге.
🤺 Искусство оскорблять: как поставить коллегу на место и отбить желание работать над проектом

Многие люди не умеют грамотно критиковать работы коллег. Эта статья научит вас наносить сокрушительные словесные удары и ставить на место любого оппонента.

🔗 Читать статью
🔗 Зеркало
🧑‍💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»

Недавно мы провели опрос среди наших читателей, и сделали несколько интересных открытий, которые пригодятся всем, кто решил войти в ИТ в 2024 году.

👉 Читать результаты опроса
Очередной #дайджест для джавистов

✳️ Ziverge Youtube — записи докладов с Functional Scala 2023

✳️ Если IDEA не работает можно ли писать на Kotlin в Vim? — обсуждаются очередные сложности с IDEA, поддержку Kotlin в текстовых редакторах, JVM на webassembly и что деплой Лямбд в AWS может оказаться совсем не тривиальной задачей

✳️ Secret — библиотека с реализацией переменных с lifetime для различных секретов во избежание утечки информации

✳️ Jar Jar Abrams — плагин sbt, который облегчает жизнь библиотекописарям и позволяет скрывать транзитивные зависимости путем их переупаковки и включения как части текущей библиотеки

✳️ JEP 454: Foreign Function & Memory API — завершается работа над API внешних функций и памяти, улучшая производительность и пользовательский опыт разработчиков
SoftReference

SoftReference (мягкая ссылка) — это класс, который представляет собой ссылку на объект, который может быть удален сборщиком мусора (GC) в любой момент, если память нужна для других объектов.

Принцип работы:
— Создание: SoftReference создается с помощью конструктора, который принимает ссылку на объект.
— Доступ к объекту: Для доступа к объекту, на который ссылается SoftReference, используется метод get().
— Очистка: GC может очистить SoftReference в любой момент, если память нужна для других объектов.

Когда использовать SoftReference:
— Кэширование: SoftReference можно использовать для реализации кэшей, где важно сохранить объекты в памяти, если это возможно, но не обязательно.
— Сохранение метаданных: SoftReference можно использовать для хранения метаданных об объектах, которые не являются критичными для работы приложения.
ScalaIO FR

Доклады с недавней конференции. Часть докладов на французском, но среди англоязычных спикеров мелькают знакомые в scala-коммьюнити имена.

#мероприятия
FairSemaphore

Это класс, реализующий семафор, который обеспечивает справедливое распределение разрешений между потоками. Это означает, что потоки, ожидающие разрешения, будут получать его в порядке очереди, а не в случайном порядке.

В примере на картинке два потока будут пытаться получить доступ к ресурсу, который защищен с помощью FairSemaphore. Потоки будут получать доступ к ресурсу по очереди, а не в случайном порядке.
📚Learn Java with Projects: A concise practical guide to learning everything a Java professional really needs to know (2023)

✍️Автор: Dr Seán Kennedy

📃Страниц: 602

Главы составлены таким образом, чтобы сосредоточиться на темах, которые действительно важны в реальных рабочих ситуациях. По мере продвижения вы будете изучать более сложные темы, включая создание собственных общих типов и потоков. Эта книга не просто рассказывает о теории — она показывает, как все работает, на примере маленьких проектов, которые в итоге складываются в один большой проект.

Что внутри:
🔸Получите четкое представление об основах Java, таких как примитивные типы, операторы, область видимости, условные операторы, циклы, исключения и массивы
🔸Освоите конструкции ООП, такие как классы, объекты, перечисления, интерфейсы и записи
🔸Развить глубокое понимание принципов ООП, таких как полиморфизм, наследование и инкапсуляция
🔸Углубиться в продвинутые темы дженериков, коллекций, лямбд, потоков и параллелизма

Скачать книгу
Хардкорный курс по математике для тех, кто правда любит математику!

Начать с вводных занятий можно здесь, ответив всего на 4 вопроса – https://proglib.io/w/3e093096

Что вас ждет:

– Вводный урок от CPO курса

– Лекции с преподавателями ВМК МГУ по темам: теория множеств, непрерывность функции, основные формулы комбинаторики, матрицы и операции над ними, градиентный спуск

– Практические задания для закрепления материала и ссылки на дополнительные материалы.

⚡️ Переходите и начинайте учиться уже сегодня – https://proglib.io/w/3e093096
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой метод должен быть переопределен классом, реализующим интерфейс Runnable для выполнения задачи в отдельном потоке?
Anonymous Quiz
5%
int run()
4%
boolean run()
12%
void run(int priority)
80%
void run()
#дайджест перед выходными

Java для домохозяек — логика разбора сообщений внутри Telegram бота

Улучшение моей распределенной системы с помощью Scala 3 — гарантии согласованности и фоновые задачи

Настройка сервиса аутентификации OpenAM и шлюза авторизации OpenIG для защиты приложений — как настроить централизованную аутентификацию через сервис аутентификации на Open Access Manager (OpenAM) и доступ к приложению через шлюз авторизации Open Identity Gateway (OpenIG)

JEP 456: Unnamed Variables & Patterns — позволяет заменять подчеркиванием переменные и шаблоны, которые вы не собираетесь использовать

Книга «Frontend Development with Javafx and Kotlin: Build State-Of-The-Art Kotlin GUI Applications» — книга знакомит с JavaFX, как технологией фронтенда и использует Kotlin вместо Java для кодирования программных артефактов, чтобы повысить выразительность и сопровождаемость кода
PathIterator

Это интерфейс в Java, который позволяет объектам, реализующим интерфейс Shape, возвращать геометрию своей границы, позволяя вызывающему объекту получать путь этой границы по одному сегменту за раз.

Основные возможности PathIterator:

👉 PathIterator позволяет перебирать сегменты пути объекта Shape по одному.
👉 Для каждого сегмента PathIterator может предоставить информацию о его типе (например, линия, кривая Безье), координатах и других атрибутах.
👉 PathIterator может использоваться для преобразования пути объекта Shape, например, для его масштабирования, поворота или перемещения.
Jackson

Jackson — это популярная библиотека Java для сериализации и десериализации объектов Java в различные текстовые форматы, такие как JSON, XML, YAML и CSV.

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

Jackson поддерживает широкий спектр функций и возможностей, что позволяет настроить его под ваши конкретные нужды. А также его можно расширить с помощью модулей для поддержки дополнительных форматов данных и функций.