Java библиотека
31.6K subscribers
2.32K photos
77 videos
8 files
2.05K links
Книги, статьи, мемы и многое другое для Java программиста!

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
new vs valueOf

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

Все оболочки, кроме чисел с плавающей точкой, от Byte до Long, имеют кэш. По умолчанию этот кэш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кэша. Значение из кэша достается в 3.5 раза быстрее, чем при использовании конструктора, плюс идёт экономия памяти.

Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной.
🔥36👍13
👩‍💻 DSL и конфигураторы контекста безопасности - Spring Security в деталях

В этом ролике автор демонстрирует создание и использование собственных DSL для настройки контекста безопасности приложения, благодаря которым можно вносить изменения в контекст безопасности на этапах инициализации и настройки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥3
Метод PutAll()

Метод putAll() используется для копирования всех элементов одной хэш-таблицы или Map в другую. Он принимает в качестве аргумента другую Map или хэш-таблицу, и копирует все её пары ключ-значение в исходную коллекцию.
Метод putAll() не возвращает значения и не бросает исключений.

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

Также с помощью этого метода можно объединять данные из нескольких Map в одну целевую коллекцию.
👍28🔥32
🔗 Как повысить эффективность работы с большим количество сетевых подключений в Java?

Узнайте на бесплатном практическом уроке «Java NIO» от OTUS и Александра Фисунова — Senior Kotlin Developer в SSP Software на проекте ВТБ.

На вебинаре вы:

— узнаете, что такое Java NIO и чем он отличается от Java IO
— разберете полезные возможности Java NIO, которые сильно упрощают жизнь и могут пригодиться любому разработчику;
— изучите Java Core и получите ответы на свои вопросы.

Встречаемся 15 февраля в 20:00 мск.
Открытый урок пройдет в преддверии обновленного запуска курса «Java Developer. Professional».

➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/sigJ/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥2
👩‍💻 Spring по верхам: Разработка REST-сервиса

В серии коротких роликов "Spring по верхам" автор вкратце рассказывает о применении экосистемы Spring при разработке приложений на платформе Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3
🏠 Разыгрываем Яндекс Станции и устройства умного дома!

Для участия подпишитесь на телеграм-каналы Яндекс и ТЕХНО и нажмите кнопку «Участвовать» под постом. 9 февраля в 12:00 бот случайным образом выберет двух победителей.

Призы:
1. Станция Миди + датчики движения, температуры и протечки + умная кнопка.
2. Станция Мини + хаб для устройств.

▶️ А пока ждёте результатов, смотрите шоу ПРОД. и yet another podcast. Из выпусков вы узнаете, как в Яндексе создают технологии умного дома и куда развиваются умные колонки с Алисой.
8👍4
EventListener

EventListener (слушатель событий) — это интерфейс, который позволяет объектам реагировать на события, происходящие в системе. Он используется для создания интерактивных приложений, где действия пользователя или изменения в системе должны вызывать определенные реакции.
👍324🔥3
RabbitMQ vs Kafka — какой брокер выбрать?

Расскажет Максим Иванов на бесплатном практическом уроке от OTUS, где вы узнаете:

- что может и как работает Kafka;
- что может и как устроен RabbitMQ (классические очереди);
- что может и как устроен RabbitMQ streams;
- слабые, сильные стороны и технические ограничения RabbitMQ и Kafka.

Встречаемся 20 февраля в 20:00 мск в рамках курса «RabbitMQ для разработчиков и администраторов». Доступна рассрочка на обучение!

Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://otus.pw/7CSww/

Реклама. ООО «ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ». ИНН 9705100963
🔥5👍4
👩‍💻 Spring по верхам: Тестирование REST-сервиса

В серии коротких роликов "Spring по верхам" автор вкратце рассказывет о применении экосистемы Spring при разработке приложений на платформе Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍164
Программируй Event Sourcing системы и получи преимущество на рынке!

Уникальный для русскоязычного сегмента курс от преподавателя Спб НИУ ИТМО и разработчика ПО Андрея Суховицкого

Целишься на позиции senior или architect? Хочешь знать больше, чем твои коллеги? Этот курс для тебя!

На курсе ты:
Разберешься в event-driven системах
Узнаешь Event sourcing, паттерн CQRS лучше, чем 99.9% разработчиков
Пройдешь путь создания Kafka, узнаешь best practice для RabbitMQ и как масштабировать свои системы
Твердо поймешь основы Domain-driven design
Глубоко залезешь в паттерн Saga и реализуешь распределенную транзакцию
Будешь уверен в себе на system design интервью

Твоими менторами станут ребята из Амазон, Револют, Яндекс и Озон.

❗️Старт курса - 15 февраля, лекции и задания доступны уже сейчас! ❗️
Промокод JAVALIB на 10% до 15 февраля

Переходи по ссылке и начинай учиться!
👍9🔥93
Интерфейс Supplier

Интерфейс Supplier — это функциональный интерфейс в языке программирования Java, определенный в пакете java.util.function. Он представляет собой интерфейс, который может использоваться для предоставления значений, но не принимает аргументов. В этом интерфейсе есть один метод, который не принимает аргументов и возвращает значение.

Метод Supplier:
T get();

Где T — это тип возвращаемого значения.

Supplier может быть полезным, когда вам нужно получить значение, но не требуется передавать какие-либо аргументы для его получения. Этот интерфейс часто используется, например, в лямбда-выражениях и стримах для предоставления значений.
👍215🔥2
Что нужно знать для работы с PostgreSQL?

Расскажет опытный эксперт на бесплатном практическом уроке «MVCC, vacuum и autovacuum в PostgreSQL» от OTUS

На вебинаре мы разберём как работают MVCC, vacuum и autovacuum в postgres

Расскажем как работают мультиверсионирование и механизмы оптимизации в PostgreSQL

Встречаемся 12 февраля в 20:00 мск в рамках курса «Базы данных». Доступна рассрочка на обучение!

👉 Регистрация
https://otus.pw/Wwao/?erid=LjN8KXrJ5
👍53🎉3
Как обеспечить безопасность в Docker контейнерах?

💻Расскажет Senior DevOps Engineer Андрей Бирюков на бесплатном практическом уроке от OTUS, где вы вместе с экспертом обсудите:

- разбор практик безопасной сборки, тестирования и Run-Time защиты Docker контейнеров;
- Docker Security топ-10 лучших практик;
- обзор Cloud Native Buildpacks.

👉Встречаемся 14 февраля в 20:00 мск в рамках курса «Внедрение и работа в DevSecOps».

Пройдите короткий тест прямо сейчас, чтобы занять место на уроке и получить запись: https://otus.pw/xIzu/


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4👍2😁1
Метод compareTo()

Используется для сравнения двух объектов. Обычно он применяется к объектам, реализующим интерфейс Comparable, чтобы определить их относительный порядок. Вот как обычно выглядит сигнатура метода compareTo():

int compareTo(T obj)

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

Отрицательное число указывает на то, что текущий объект меньше, чем объект obj.
Ноль указывает на то, что текущий объект равен объекту obj.
Положительное число указывает на то, что текущий объект больше, чем объект obj.
👍167
Предметно-ориентированное проектирование в Enterprise Java (2020) PDF

В книге подробно рассматриваются реализации шаблонов предметно-ориентированного проектирования с применением различных инструментальных средств и рабочих программных сред из Enterprise Java Space. При таком подходе читатель получает завершенную картину и возможность практического применения любого из этих средств в процессе предметно-ориентированного проектирования.
В начальных главах описывается эталонная реализация проекта Cargo Tracker - создание монолитного приложения с использованием платформы Jakarta EE. Затем рассматривается полный процесс преобразования монолитного приложения в архитектуру, основанную на микросервисах. В заключительных главах демонстрируется создание версии приложения с использованием шаблонов CQRS и Event Sourcing (ES); основной рабочей средой является Axon Framework.
👍95🔥3
⁉️Как написать проект одновременно на двух языках – Kotlin и Rust?

 👨‍🏫Расскажет Сергей Окатов – кандидат физико-математических наук, руководитель управления разработки БФТ.ЦР. Встречаемся на бесплатном практическом уроке от OTUS, где мы:

- расскажем о двух молодых и активно развивающихся языках, вошедших в TIOBE-20; - обсудим их преимущества, недостатки и причины, почему они занимают ниши популярных языков Java, JS и C/C++;
- изучим сочетание преимуществ обоих языков;
- продемонстрируем, как можно интегрировать их в одном проекте.

📆Занятие пройдёт 13 февраля в 19:00 мск и будет приурочено к старту курса «Kotlin Backend Developer. Professional». Доступна рассрочка на обучение!

 ➡️Пройдите бесплатный тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: https://otus.pw/gf30/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8JwyAh
👍931
👩‍💻 Client, Resource Server, Login - Spring Security OAuth 2.0

В одном из предыдущих роликов автор рассказал теорию об OAuth 2.0 и OIDC, а на этот раз предлагает перейти к практике. Spring Security реализует практически полноценную поддержку протокола авторизации OAuth 2.0 и его расширения аутентификации OpenID Connect (OIDC), и с минимальными изменениями в своём проекте вы можете внедрить поддержку этих протоколов. В этом ролике автор рассматривает возможность применения Spring Security OAuth 2.0 для реализации сервера ресурсов, клиента и логина в веб-приложениях на основе Spring WebMVC и Spring Webflux. Так же в качестве сервера авторизации снова будет рассмотрен Keycloak, а так же процесс его настройки.
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍4🔥3💯1
Отус приглашает 15 февраля в 20:00 мск на бесплатный вебинар «Роль Apache Kafka в логировании».

Вебинар является частью продвинутого онлайн-курса "Observability: мониторинг, логирование, трейсинг".

➡️ Регистрация на вебинар: https://vk.cc/cuuEWc

На вебинаре мы разберём:
роль брокера в Kafka;
как Kafka интегрируется в общую систему сбора данных;
индексы в Kafka;
взаимодействие с общим стеком логирования.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2🔥21
Можно ли считать Final переменную константой?

Поскольку у нас не получится присвоить новое значение для final переменной, кажется, что это переменные константы. Но это только на первый взгляд. Если тип данных, на который ссылается переменная — immutable, то да, это константа.

А если тип данных mutable, то есть изменяемый, при помощи методов и переменных можно будет изменить значение объекта, на который ссылается final переменная, и в таком случае назвать ее константой нельзя. Так вот, на примере видно, что часть финальных переменных действительно константы, а часть — нет, и их можно изменить.
22👍13🔥2