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
Media is too big
VIEW IN TELEGRAM
Java Аннотации: Полное Руководство + Создание Собственных Аннотаций

Узнайте всё о Java аннотациях! 🚀
В этом видео мы разберёмся, что такое аннотации в Java, как они работают и почему без них не обходятся такие фреймворки, как Spring, Hibernate и JUnit. Вы узнаете:
Основные аннотации Java (
@Override, @Entity, @Test)
Как работают
@Target, @Retention и другие мета-аннотации
Как создать собственную аннотацию и обработать её с помощью рефлексии
Примеры реального использования аннотаций в разработке приложений
Мы покажем код, разберём логику работы аннотаций и создадим собственную аннотацию для валидации полей. Это обязательное видео для всех, кто хочет прокачать свои навыки Java!


📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43🎄1
Метод PutAll()

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

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

Также с помощью этого метода можно объединять данные из нескольких Map в одну целевую коллекцию.


@javalib #java
👍12🔥52
🏰 Открытый урок «Знакомство с Resilience4j» 🏰

🗓 Дата: 19 декабря в 20:00 мск.

👩‍💻 Resilience4j — популярный инструмент для обеспечения стабильности и отказоустойчивости в Java-приложениях. В мире высоких нагрузок и распределенных систем важно познакомиться с этим фреймворком, чтобы улучшить надежность и производительность ваших приложений.

Программа урока:
- Введение в Resilience4.
- Применение Resilience4j для улучшения стабильности.

🔗 Регистрация на вебинар: https://vk.cc/cGapcZ

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥2😁1
Как работает Pageable в Spring

Pageable — это мощный инструмент в Spring Data для работы с большими объемами данных, который позволяет разделить результат на страницы. Это оптимизирует память и улучшает производительность.

Вместо загрузки всех записей, например через findAll(), мы можем запросить только определенное количество данных (порции/страницы) и продолжать загружать по мере необходимости. Интерфейс Pageable создает запрос с параметрами LIMIT и OFFSET, что позволяет базе данных возвращать только нужные записи, начиная с определенного места.

*️⃣Пример использования:

🟡 Репозиторий:

public interface UserRepository extends JpaRepository<User, Long> {}


🟡Сервис:

@Service
public class UserService {

@Autowired
private UserRepository userRepository;

public Page<User> getUsersByPage(int page, int size) {
Pageable pageable = PageRequest.of(page, size, Sort.by("name").ascending());
return userRepository.findAll(pageable);
}
}


Здесь PageRequest.of(page, size, Sort) создает объект Pageable, который указывает, какую страницу и сколько записей нужно получить, а также сортирует результат по имени в порядке возрастания.

🟡Контроллер:

@RestController
public class UserController {

@Autowired
private UserService userService;

@GetMapping("/users")
public Page<User> getUsers(
@RequestParam(defaultValue = "0") int page,
@RequestParam(defaultValue = "20") int size) {
return userService.getUsersByPage(page, size);
}
}


Этот эндпоинт позволяет запрашивать данные по страницам. Например, /users?page=1&size=20 вернет вторую страницу с 20 записями.

*️⃣Преимущества использования Pageable:

- Экономия памяти: Мы загружаем только небольшие порции данных.
- Легкость навигации: Можно переключаться между страницами.

*️⃣Недостатки использования Pageable:

- Дополнительный запрос для подсчета записей: Spring Data выполняет запрос для получения общего числа записей.
- Ограниченная гибкость: При сложных запросах с множеством фильтраций и джоинов Pageable может быть не таким гибким, как ручные запросы с LIMIT и OFFSET.

❗️Важно: Пагинация удобна для больших объемов данных, но если данные постоянно обновляются, возможны проблемы с консистентностью между страницами. Записи могут дублироваться или пропадать.

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍266🔥4
⚡️Как проектировать базы данных так, чтобы впоследствии не приходилось тушить пожары в результате не оптимально заложенных основ?

👉 Приглашаем на курс "PostgreSQL для профессионалов", который обеспечит глубокое погружение в PostgreSQL!

На курсе вы:
- Научитесь настраивать кластер PostgreSQL на оптимальную производительность
- Организуете систему резервного копирования
- Научитесь выяснять причины сбоев, блокировок и deadlock и оперативно решать эти проблемы
- Сможете использовать индексы, джойны и статистику для оптимизации производительности
- Освоите синтаксис и особенности работы в PostgreSQL
- Изучите пути решения проблем работы с большими объемами данных в PostgreSQL

Записывайтесь на курс уже сейчас и получите скидку! https://vk.cc/cGbWNj

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍52🔥2
Forwarded from Java Guru 🤓
Что выведет программа?
👍5🔥3
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.

Канал Java Guru выложил в открытый доступ тесты, которые дают на собеседованиях в топовые компании, вроде Яндекс и MailRu.

➤ Открываете задачку – выбираете вариант – видите правильный ответ и детальное объяснение к нему. Так вы усвоите на 50% больше знаний в сжатые сроки.

Подписывайтесь и качайте свои скиллы: @javatasks
👍6🔥2🎄2
Media is too big
VIEW IN TELEGRAM
Реактивное программирование | Spring WebFlux

📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4🎄4🎅21
Интерфейс Iterable

Iterable используется для представления коллекций, которые можно итерировать или пройти в цикле.

Он определяет метод iterator(), который возвращает объект Iterator.
Этот Iterator позволяет поочередно получать элементы коллекций, также его можно использовать в цикле while или for-each для последовательного перебора всех элементов коллекции.

Это позволяет абстрагироваться от конкретного типа коллекции. Мы можем работать с Iterable и Iterator, не завися от того список это, множество или очередь. Такой подход упрощает использование разных коллекций.


@javalib #java
👍154🔥3🎄2
🆕💥 Backend-разработчик, получи актуальные знания о микросервисах!

Умение строить архитектуру микросервисов — навык, необходимый Senior разработчикам и тем, кто хочет стать архитектором ПО. Переходи на сайт, чтобы проверить свои знания и посмотреть подходит ли тебе 💥 обновленная программа курса Microservice Architecture от OTUS?

Если успешно пройдешь тест, сможешь забронировать место в группе по🌲 новогодней скидке! Не забудь активировать промокод Microservice_12

🎫 Курс можно приобрести в рассрочку

🔴 Пройти тест и забрать скидку: https://vk.cc/cGkXFI

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍52🔥2
Media is too big
VIEW IN TELEGRAM
What's New in Spring Batch 5.2

hi, Spring fans! Spring Boot 3.4 is here and with it comes a bevy of ecosystem upgrades. in this video we look at the latest-and-greatest in Spring Batch 5.2!

📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🎄2
Хватит разворачивать приложения наугад! Docker — must-have инструмент для современных Java-разработчиков.

🔍 На открытом уроке разберем, как контейнеризация упрощает разработку и развертывание приложений. Узнаете всё: от создания Docker-контейнеров до профилирования.

👉 Запускайте Java-приложения в облаке, тестируйте их под нагрузкой, отлаживайте с точностью хирурга. Начните путь к новой профессиональной высоте!

🗓 Запишитесь на урок «Контейнеризация Java-приложений с Docker» 27 декабря в 20:00 уже сейчас! Участникам — скидки на курс «Java Developer. Advanced»: https://vk.cc/cGlGb0

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
3👍3🔥2
LongAdder

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

LongAdder применяется в многопоточных приложениях, когда нужно эффективно подсчитать сумму или другое агрегатное значение из нескольких потоков.

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


@javalib #java
👍7🔥32
Приглашаем вас на открытый вебинар: «Основы многопоточности в Java»

Дата: 25 декабря в 20:00 мск
Спикер: Борис Кириллов

📚Программа урока:
- Введение в многопоточность: что это и зачем это нужно.
- Изучение базовых классов для работы с потоками.
- Разбор типовых проблем многопоточности и подходов к их решению.

🔥Урок будет полезен тем, кто хочет:
- Разобраться в основах многопоточности в Java.
- Понять, как писать многопоточные программы.
- Узнать, какие классы используются для работы с потоками в Java.

🚀В результате урока вы:
- Поймете подходы к многопоточности в Java.
- Изучите базовые классы и синтаксис многопоточной обработки.
- Сможете применять полученные знания для создания более эффективных Java-приложений.

Участники всех открытых уроков получат скидку🎁 на большое обучение

👉Регистрируйтесь на открытый вебинар по ссылке: https://vk.cc/cGnWN4

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍42🔥2
ServletContext

ServletContext предоставляет сервлету доступ к контексту веб-приложения. Он содержит общую информацию о приложении и позволяет сервлетам взаимодействовать.
Доступ к ServletContext можно получить через метод getServletContext() класса ServletConfig.

Через ServletContext можно получить данные инициализационных параметров web.xml.
ServletContext позволяет сервлетам оставлять атрибуты, доступные всем сервлетам данного приложения.

Также с его помощью можно получить ресурсы приложения, например потоки ввода-вывода.


@javalib #java
👍6🔥53😁2
👩‍💻 Пройди тест по Java

Spring от А до Я: как быстро доставлять продукт в продакшн и радовать пользователей? 👩‍💻

Ответишь — пройдешь на продвинутый курс "Разработчик на Spring Framework" от OTUS по специальной цене.

👉 ПРОЙТИ ТЕСТ: https://vk.cc/cGryOD

🎫 Начни обучение со скидкой, подробности у менеджеров.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥2
Media is too big
VIEW IN TELEGRAM
Хакерская утилита: пишем сканер портов на Java за 10 минут!

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


📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

@javalib #java
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄11🔥8👍62🎅1
Оptimistic locking

optimistic locking — это стратегия контроля параллельного доступа к ресурсам или данным, которая позволяет не блокировать ресурсы в течение длительного времени. Она основывается на предположении, что конфликты при доступе к данным встречаются редко, и поэтому вместо того чтобы заблокировать ресурс целиком на протяжении операции, она позволяет нескольким потокам или процессам работать с данными параллельно.

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


@javalib #java
👍156🔥6
👩‍💻 Тест для профессионалов Java 👩‍💻

Ответьте на 20 вопросов и проверьте, насколько вы готовы к обучению на курсе — «Java Developer. Professional»

За 6 месяцев курса вы:
- Сможете создавать современные java-приложения
- Поймете основы функционирования JVM (сборка мусора, byteCode)
- Освоите приемы применения многопоточности.
- Самостоятельно решать задачи уровня Middle+
- Получите практику решения сложных задач с подробным код ревью от экспертных Java-разработчиков
- Откроете для себя подходы, которые позволят писать код быстрее и чище

Тест займет всего 20 минут вашего времени!

👉 ПРОЙТИ ТЕСТ https://vk.cc/cGvb3G

💣 Пройдете тест - получите скидку на курс, и доступ к бесплатным урокам курса.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥2😁2
Класс ReentrantReadWriteLock

Класс ReentrantReadWriteLock используется для организации разделяемого доступа к ресурсам с разделением на чтение и запись.

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

Проще говоря, множество потоков могут одновременно заходить в метод read, но в write может находиться только один поток в данный момент времени.
Это позволяет эффективно организовать доступ на чтение и запись.


@javalib #java
👍11🔥81