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
Рецепты чистого кода (2025) PDF, ePUB

Для инженеров-разработчиков и архитекторов, имеющих дело с большим объемом сложного кода, важно эффективно его масштабировать и обслуживать. Автор Максимилиано Контьери выходит за рамки концепции чистого кода, показывая, как искать возможности улучшения и оценивать их влияние на код готового программного продукта. Когда речь идет о надежности и развитии, эти методы обеспечивают преимущества, которые со временем окупаются.

Проверенные рецепты на JavaScript, PHP, Python, Java и других языках программирования помогут масштабировать и поддерживать большие системы. В каждом разделе рассматриваются такие фундаментальные понятия, как читаемость кода, связанность, тестируемость, безопасность и расширяемость, а также запахи кода и соответствующие рецепты их устранения.
🔥12👍63
Java Full Course for free ☕️ (2025) 12 Hours

Java tutorial for beginners full course.

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥3🍾21
Forwarded from Java Guru 🤓
Что выведет данный код?
👍7🔥51
Forwarded from Java Guru 🤓
👍18🔥102
SQLException

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

Обычно он возникает при выполнении запросов к БД через JDBC и сигнализирует об ошибках соединения с БД, синтаксических ошибках в SQL запросе, проблемах с транзакциями и т.д.

Здесь мы подключаемся к БД, выполняем запрос INSERT и отлавливаем возможную ошибку через блок catch по SQLException.

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


@javalib #java
👍10🔥65
Media is too big
VIEW IN TELEGRAM
Работа Istio с Keycloak для обеспечения безопасности Java приложения

Демо возможностей Istio в локальном кластере Minikube на примере Java приложения и Keycloak.

📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112🔥2
Шпаргалка по основам Java с примерами кода.

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

Оригинал в хорошем качестве можно взять тут

@javalib #java
🔥20👍94
Forwarded from Java Guru 🤓
Какой запрос нужно послать, чтобы получить 15?
👍7🔥3
Forwarded from Java Guru 🤓
Какой запрос нужно послать, чтобы получить 15?
Anonymous Quiz
5%
/api/sum?sum=15
10%
/sum?a=10&b=5
10%
/api/sum?a=10,b=5
5%
/api/sum&a=10&b=5
69%
/api/sum?a=10&b=5
👍32😁7🔥4
Класс "обертка" (wrapper class)

Класс-обертка (wrapper class) — это класс, который обеспечивает возможность использования примитивных типов данных как объектов. Каждый примитивный тип данных в Java имеет соответствующий класс-обертку: byte — Byte, short — Short, int — Integer, long — Long, float — Float, double — Double, boolean — Boolean и char — Character.

Классы-обертки используются, например, при работе с объектами коллекций, такими как ArrayList, где примитивные типы не могут быть использованы (список может хранить только объекты).

В этом примере мы создаем объекты классов-оберток для примитивных типов int, double, char и выводим значения этих объектов с помощью метода println().


@javalib #java
🔥13👍84
Динамический массив

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

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


@javalib #java
13👍5🔥2
🎮 API архитектурные стили

🔗 REST – популярный подход для публичных API и веб-приложений, поддерживает JSON, XML, HTML и текст.
🔗 SOAP – использует структуру сообщений с оберткой на основе XML. Применяется в платежных системах и телеком-сервисах, но имеет высокий порог входа.
🔗 GraphQL – гибкая схема и система типов, позволяет использовать JSON и подходит для сложных систем и мобильных API.
🔗 gRPC – высокопроизводительный фреймворк RPC, работает через протоколы сериализации, используется для высоконагруженных систем.
🔗 WebSocket – поддерживает двустороннюю связь, подходит для чатов и других приложений реального времени.
🔗 Webhook – асинхронный подход, применим для CI/CD процессов и платежных шлюзов.

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
20👍9
Paging vs. Segmentation

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

🟡 Пагинация:

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

Преимущества:
- Устраняет внешнюю фрагментацию.
- Облегчает работу с виртуальной памятью и перемещением страниц.
- Управление памятью становится более простым и эффективным.

🟡Сегментация:

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

Преимущества:
- Обеспечивает логическое разделение кода и данных.
- Упрощает защиту и обмен сегментами.
- Поддерживает управление растущими структурами данных.

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥8🎉61
Trie

Trie (дерево префиксов) — это структура данных в виде дерева, используемая для хранения ассоциативных данных, например словарей.
Она позволяет эффективно хранить и находить слова по их префиксам.

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

Поиск слова заключается в прохождении от корня по ветвям символов этого слова. Добавление нового слова — добавление отсутствующих узлов для его символов.

Trie оптимальна для хранения словарей и поиска по префиксам благодаря эффективности этих операций.
В Java для реализации Trie удобно использовать HashMap в узлах для связей с дочерними узлами.


@javalib #java
👍76
📌 Как работает SSO

SSO (Single Sign-On) или Единая система аутентификации — это схема аутентификации, которая позволяет пользователю войти в разные системы, используя одну учетную запись.

На фото выше показан принцип работы SSO.

Шаг 1: Пользователь заходит в Gmail или любой другой сервис электронной почты. Gmail обнаруживает, что пользователь не авторизован, и перенаправляет его на SSO сервер аутентификации, который также обнаруживает отсутствие входа. Пользователь попадает на страницу авторизации SSO и вводит свои учетные данные.

Шаги 2-3: SSO сервер проверяет данные пользователя, создает глобальную сессию и выдает токен.

Шаги 4-7: Gmail проверяет токен на SSO сервере. Система аутентификации регистрирует Gmail и возвращает статус «действительно». Gmail отправляет пользователю защищенный ресурс.

Шаг 8: Из Gmail пользователь переходит на другой сайт Google, например, YouTube.

Шаги 9-10: YouTube обнаруживает, что пользователь не авторизован, и запрашивает подтверждение. SSO сервер находит уже активную сессию пользователя и выдает токен.

Шаги 11-14: YouTube проверяет токен на SSO сервере. Система аутентификации регистрирует YouTube и возвращает статус «действительно». YouTube отправляет пользователю защищенный ресурс.

✔️ Процесс завершен, и пользователь получает доступ к своим данным.

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🎉125
DoubleAdder

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

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

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


@javalib #java
👍10🔥9🎉5🎅1
📌 Хотите быстрее настроить Spring Boot проект?

Spring Initializr – инструмент, который поможет вам с начальной конфигурацией Spring-приложения. Выберите сборщик, зависимости, версию Java, и он сгенерирует базовую структуру проекта, готовую для импорта в вашу IDE и начала разработки.

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

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9😁8🔥32