Java библиотека – Telegram
Java библиотека
31.5K subscribers
2.38K photos
91 videos
10 files
2.19K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
Где вы чаще всего пишете код?

❤️ IntelliJ IDEA
🔥 Vim/Emacs
👍🏼 Eclipse
⚡️ VS Code
😁 Notepad++

Пишите в комментарии интересные/полезные фичи вашего инструмента
Please open Telegram to view this post
VIEW IN TELEGRAM
250👍2017😁9🔥8
Forwarded from Java Guru 🤓
Что будет результатом кода?
👍7🔥3
👩‍💻 Spring Security 6.4: RestClient Support for OAuth2

🔒 Learn OAuth2 authentication in Spring Boot with the new Rest Client support in Spring Security 6.4! This tutorial walks you through building a secure multi-module application from scratch, complete with authorization server, resource server, and client applications.

In this step-by-step guide, we'll build a OAuth2 implementation using Spring Boot 3.4's latest features. Perfect for developers looking to implement secure authentication in their Spring applications!

What You'll Learn:
• Setting up a multi-module Maven project in Spring Boot
• Implementing an OAuth2 authorization server
• Creating a secure resource server with protected endpoints
• Building client applications with Rest Client OAuth2 support
• Understanding OAuth2 flow and architecture
• Best practices for Spring Security configuration
• Handling unauthorized access and security exceptions


🌐🗣СМОТРЕТЬ VKVIDEO

📺🗣СМОТРЕТЬ RUTUBE

📝🗣СМОТРЕТЬ DZEN

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥2
Хотите прокачать скиллы в автоматизации тестирования на Java?

Ждем вас на бесплатном практическом уроке от OTUS — «gitlab-ci и написание пайплайнов для сборки»

Практика: gitlab-ci и методики написания пайплайнов для сборки докер образа с тестами и его публикации в реджестри

👉 Регистрация и подробности:
https://otus.pw/32R8/?erid=2W5zFJ7Aifz

#реклама
О рекламодателе
👍72🔥2
Какие типы ссылок существуют?

Существует 4 типа ссылок, которые определяют, как объект будет обрабатываться сборщиком мусора (Garbage Collector).

1️⃣ Strong Reference

Это ссылки, которые используются по умолчанию.
String strongRef = new String("Strong Reference");


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

2️⃣ Soft Reference

Создаются с помощью класса SoftReference. Soft ссылка удерживает объект в памяти, пока в JVM достаточно свободной памяти. Если памяти не хватает, объект будет удален.
SoftReference<String> softRef = new SoftReference<>(new String("Soft Reference"));
String softObj = softRef.get();


Удобны для реализации кэшей. Например, если объект можно восстановить, но не хочется держать его в памяти постоянно.
Сборщик мусора удаляет объекты, на которые ссылаются мягкие ссылки, только в случае нехватки памяти.

3️⃣ Weak Reference

Создаются с помощью класса WeakReference. Объект, на который ссылается слабая ссылка, удаляется сборщиком мусора, как только на него больше нет сильных или мягких ссылок.
WeakReference<String> weakRef = new WeakReference<>(new String("Weak Reference"));
String weakObj = weakRef.get();


Часто используются в структурах данных, таких как WeakHashMap, для предотвращения удержания ненужных объектов.
Удобны для создания ссылок на временные объекты.

4️⃣ Phantom Reference

Создаются с помощью класса PhantomReference. Эти ссылки используются исключительно для отслеживания, когда объект будет удален сборщиком мусора.
PhantomReference<String> phantomRef = new PhantomReference<>(new String("Phantom Reference"), new ReferenceQueue<>());


Метод get() у фантомной ссылки всегда возвращает null.
Объекты, на которые ссылаются фантомные ссылки, добавляются в ReferenceQueue, когда сборщик мусора их удаляет.

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24🔥65
👩‍💻 Создание приложения Блокнот на Java 👩‍💻

🗓 24 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик».

На вебинаре мы разработаем полноценное приложение «Блокнот» с графическим пользовательским интерфейсом, демонстрирующее базовые принципы создания текстового редактора на Java.

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

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

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

🔗 Ссылка на регистрацию: https://vk.cc/cJP6Du

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
🖥 OpenGLFX — библиотека для интеграции OpenGL-графики с JavaFX!

🌟 Она добавляет компонент GLCanvas, который позволяет отображать графику OpenGL как обычный элемент JavaFX. Библиотека поддерживает различные движки рендеринга, включая LWJGL, JOGL, LWJGL2 и LibGDX, и оптимизирована для каждой платформы.

🔐 Лицензия: Apache-2.0

🖥 Github

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥4
🖥 Заметки о java.util.Stream

Stream API (поток) — принципиально новый способ работы с коллекциями в Java (по крайней мере он был таким на момент релиза).

В данной статье речь пойдёт о наиболее интересных и показательных примерах использования Stream.
Обсудим, как применять Stream API эффективно, делая код лучше и избегая ошибок.

🔜 о java.util.Stream

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍64
Секретная фича Docker Compose | Создаём несколько окружений для Spring Boot | Amplicode

В новом видео мы рассказали о нескольких способах создания различных окружений с Docker Compose: от использования Copy/Paste и Profiles до малоизвестных Include и Extends.

Узнали, в чём минусы и плюсы каждого из них, а также посмотрели на поддержку перечисленных вариантов со стороны Amplicode.


🌐🗣СМОТРЕТЬ VKVIDEO

📺🗣СМОТРЕТЬ RUTUBE

📝🗣СМОТРЕТЬ DZEN
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥2
DoubleAdder

DoubleAdder
это класс из пакета java.util.concurrent, предназначенный для эффективного параллельного суммирования значений типа double.

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

Преимущества:
— Высокая скорость за счет разделения на сегменты и отсутствия блокировок.
— Минимизация конфликтов между потоками при обновлении.
— Хорошо масштабируется на большом количестве CPU ядер.


Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍146🔥4
🖥 Apache SeaTunnel — высокопроизводительный распределенный инструмент интеграции данных

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

🖥 GitHub
🟡 Доки

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥3
Forwarded from Java Guru 🤓
Что будет результатом кода?
👍11🔥3
Forwarded from Java Guru 🤓
Что будет результатом кода?
Anonymous Quiz
23%
[10, 20, 30, 40]
7%
[20, 30, 40, 10]
56%
[20, 30, 40]
12%
[10, 20, 30]
2%
[30, 40, 20]
👍8🔥3
🖥 webmagic — масштабируемый фреймворк веб-краулера для Java

webmagic охватывает весь жизненный цикл краулера: загрузку, управление url, извлечение контента и его сохранение.

🖥 GitHub
🟡 Доки

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥85
Полезный инструмент для работы с JSON 👇

JSON-файлы с высокой вложенностью часто сложно прочитать.
𝐉𝐬𝐨𝐧𝐂𝐫𝐚𝐜𝐤 создает графические диаграммы из JSON-файлов и делает их легко читаемыми.
Кроме того, созданные диаграммы можно скачать в виде изображений.

Также поддерживает YAML и XML форматы.

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍166🔥3🎄1
Логирование, трассировка и метрики

Логирование, трассировка и метрики — это три столпа наблюдаемости системы

🟡Логирование
Логирование фиксирует дискретные события в системе. Например, мы можем записывать входящие запросы или обращения к базам данных как события. Это самый объемный тип данных. Для построения платформы анализа логов часто используют стек ELK (Elastic-Logstash-Kibana). Мы часто определяем стандартизированный формат логов для разных команд, чтобы использовать ключевые слова при поиске среди большого объема логов.

🟡Трассировка
Трассировка обычно привязана к запросам. Например, пользовательский запрос проходит через API-шлюз, балансировщик нагрузки, сервис A, сервис B и базу данных — это можно визуализировать в системах трассировки. Это полезно для выявления узких мест в системе. OpenTelemetry используется для демонстрации типичной архитектуры, которая объединяет три столпа в одной платформе.

🟡Метрики
Метрики — это обычно агрегируемая информация из системы. Например, QPS сервиса, отзывчивость API, задержка сервиса и т.д. Сырые данные записываются в базы данных временных рядов, такие как InfluxDB. Prometheus извлекает данные и преобразует их на основе предопределенных правил оповещений. Затем данные отправляются в Grafana для отображения или в менеджер оповещений, который затем рассылает уведомления по email, SMS или в Slack.

Какие инструменты вы используете для мониторинга системы?

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🔥2
🖥 Vert.x — это набор инструментов для создания реактивных приложений на JVM

Ядро Vert.x содержит достаточно низкоуровневую функциональность, включая поддержку HTTP, TCP, доступ к файловой системе и различные другие возможности. Можно использовать Vert.x непосредственно в своих приложениях.

🖥 GitHub
🟡 Доки

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117🔥7
Паттерн Компоновщик (Composite)

Composite — это структурный паттерн, который позволяет организовать объекты в древовидные структуры для представления иерархий "часть-целое". Он позволяет клиентам единообразно работать как с отдельными объектами, так и с их группами.

Использование:

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

Преимущества:

1️⃣ Позволяет обрабатывать составные и простые элементы одинаково.
2️⃣ Новый тип компонента можно добавить, просто реализовав общий интерфейс.
3️⃣ Можно динамически изменять дерево объектов (добавлять, удалять узлы).

Недостатки:

1️⃣ Усложнение кода: Может сделать систему сложнее из-за необходимости реализации общего интерфейса.
2️⃣ Затраты на проверку типов: Клиентский код иногда должен дополнительно проверять тип узлов, если это необходимо.

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

Java библиотека #java
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍6