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

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

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

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

Сообщество VK https://vk.com/javatutorial
Download Telegram
shutdown hook

Shutdown hook позволяет приложению выполнить некоторый код перед завершением приложения.

Для создания hook нужно создать объект класса Thread и передать его в метод addShutdownHook() класса Runtime.
Когда приложение завершается, все заданные hook выполнятся последовательно.

Shutdown hook работает в случае нормального или аварийного завершения приложения и часто используется для освобождения ресурсов, закрытия соединений, сохранения данных.
👍36🔥65
Что не так в этом многопоточном коде?
😁26👍32🔥2
Spring Boot 3 and Spring Framework 6 (2024) True ePUB

Say goodbye to dependencies, bogged-down code, and inflexibility! With the Spring framework and Spring Boot, you’ll painlessly create Java applications that are production ready. Start with the basics: containers for Spring-managed beans, Spring framework modules, and proxies. Then learn to connect to relational databases, implement Jakarta Persistence, use Spring Data JPA, and work with NoSQL databases. Get the right know-how for modern software development with Spring and Java!

Spring Boot, the leading Java enterprise framework, provides numerous benefits to the developer community. It’s user-friendly, simplifies microservices development, and, when developed correctly, can achieve scalability, making it ideal for building robust enterprise applications. This book covers all the essential features of the widely used Java framework, up to its latest major release, Spring Boot 3, which was launched in November 2022.
👍154🔥4
Механизм try-with-resources

Механизм try-with-resources — это способ автоматического закрытия ресурсов после их использования. Появился этот механизм в Java 7.
Он работает для классов, реализующих интерфейс AutoCloseable (например, потоки), уменьшает количество кода и упрощает обработку исключений.

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

По сравнению с блоком try-catch-finally этот механизм позволяет лаконичнее писать код с автозакрытием ресурсов.

В этом примере в блоке try создаются объекты FileReader и BufferedReader для чтения данных из файла.
После завершения блока try оба ресурса будут автоматически закрыты, даже если произойдет исключение.
👍252🔥2🎉2
Техника «10 тестов в день» – одна из самых эффективных в изучении Java.

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

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

Подписывайтесь и качайте свои скиллы: @javatasks
👍95🔥3
Priority Queue

PriorityQueue — это коллекция, которая хранит элементы в соответствии с их приоритетом.
Реализует очередь на базе кучи (heap) и используется в ситуациях, когда необходимо обрабатывать или получать элементы в определенном порядке.

Элементы в очереди упорядочены по их естественному порядку (если элементы компарируемые) или согласно компаратору, переданному при создании очереди.
Первым всегда будет элемент с наивысшим приоритетом и извлечь можно только его.

PriorityQueue не поддерживает изменение приоритета элемента после добавления.
👍26🔥62🎉1
Средства обнаружения действий внутреннего нарушителя (PAM и другие решения)

Расскажет Александр Горячев — Инженер по информационной безопасности инфраструктуры в BHFT. Встречаемся на бесплатном открытом уроке от OTUS.

💻На вебинаре рассмотрим:

- расскажем о видах внутренних угроз и их потенциальных последствиях;
- углубимся в понятие привилегированных учётных записей, изучим принципы работы систем управления привилегированными учётными записями (PAM);
- расскажем про современные технологии и решения для обнаружения и предотвращения внутренних угроз.

Занятие пройдёт 31 января в 20:00 мск и будет приурочено к старту курса «Внедрение и работа в DevSecOps». Доступна рассрочка на обучение!

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


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

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

Например, если у нас есть две коллекции: A = {1, 2, 3} и B = {a, b}, то произведение A и B будет выглядеть следующим образом:

{(1, a), (1, b), (2, a), (2, b), (3, a), (3, b)}

Таким образом, мы получаем шесть возможных пар элементов из коллекций A и B.

В этом примере мы создаем две коллекции и используем два вложенных цикла для создания cartesian product. Созданное произведение сохраняется в коллекцию cartesianProduct типа List> и результат выводится на экран.
👍152🔥2
🤨Что ждёт бэкендеров в 2024?

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

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

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

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KSY1k
👍82🔥1
👩‍💻 Подсчёт количества строк в текстовом файле на Java

Во многих редакторах при работе с текстовым документом вы можете видеть, сколько всего строк содержится в этом файле. Строки между собой разделяются символом перевода строки, который в каждой операционной системе (Windows, Unix, Mac) свой.

Давайте
разберёмся, как быстро подсчитать количество строк в текстовом файле независимо от той ОС, в котором выполняется наш код. Более того, текстовый файл может быть сколь угодно большим, поэтому мы будем использовать буферизацию потока, чтобы не израсходовать всю доступную оперативную память.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥31
💻Бесплатный практический урок по работе с Apache Kafka «Пишем продьюсер и консьюмер на Alpakka» от Валентина Шилина – старшего программиста и аналитика данных в Deutsche Telekom IT GmbH.

На занятии:

- продемонстрируем интересную связку Scala Alpakka (Kafka);
- напишем продьюсер и будем ловить его сообщения в консьюмере;
- покажем, насколько легко и элегантно можно реализовать трудоемкую задачу распределенных вычислений.

Встречаемся 6 февраля в 20:00 мск в рамках подготовки к курсу «Apache Kafka». Обучение доступно в рассрочку!

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍72🔥1
⌨️ Управление доступом к членам класса

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

Существует 4 уровня доступа:

private
Указывает, что доступ возможен только в его собственном классе.

package-private (нет явного модификатора)
Указывает, что доступ только внутри своего собственного пакета.

protected
Указывает, что доступ возможен только внутри его собственного пакета (как в случае с package-private) и, кроме того, для подкласса его класса в другом пакете.

public
Указывает, что доступ возможен отовсюду.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍287🔥4😁2
🔥Незаменимый инструмент для автоматизации тестирования на Java

👉Освойте его на бесплатном открытом уроке «Возможности тестирования через Spring Contract Testing» от OTUS.

📖На вебинаре вы вместе с опытным экспертом познакомитесь с возможностями тестирования через Spring Contract Testing и получите ответы на любые свои вопросы по теме.

📆Занятие пройдёт 31 января в 20:00 мск и будет приурочено к старту курса «Java QA Engineer. Professional». Доступна рассрочка на обучение!

💪Пройдите бесплатный тест прямо сейчас, чтобы занять место на открытом уроке и получить запись: Пройти тест

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8K4PNV
👍62🔥2❤‍🔥1
Метод dropWhile был введен в интерфейсе Stream в JDK 9. Этот метод позволяет пропускать элементы в начале потока данных, пока они удовлетворяют определенному условию, и возвращает новый поток, начиная с первого элемента, который не соответствует условию.

В примере метод dropWhile используется для пропуска элементов в потоке до тех пор, пока они меньше 0. После первого элемента, не соответствующего условию, оставшиеся элементы добавляются в новый поток.
👍273🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Пройди тест по Java и проверь свои знания.

Ответишь
— пройдешь на продвинутый курс "Java Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса курса

🔝 Обновленная, расширенная программа

👉 ПРОЙТИ ТЕСТ: https://otus.pw/iGUxF/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
Принцип разделения интерфейса - SOLID в деталях

Принцип разделения интерфейса гласит: "Клиент не должен зависеть от интерфейсов, которые он не использует"

В серии роликов «SOLID в деталях» автор постарается подробно рассказать о принципах SOLID, а так же продемонстрировать их практическое применение.
👍16🔥7
С чего начать изучение работы с RabbitMQ?

С бесплатного практического урока «Очереди сообщений и протокол AMQP» от OTUS.

На вебинаре разберём:

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

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

Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/s6RG/
👍63😁3🔥2
Продвинутые алгоритмы и структуры данных (2024) PDF

Познакомьтесь с самыми необходимыми алгоритмами решения сложных задач программирования в области анализа данных, машинного обучения и графов. Вы постоянно сталкиваетесь с бесчисленными проблемами программирования, которые поначалу кажутся запутанными, трудными или нерешаемыми. Не отчаивайтесь! Многие из «новых» проблем уже имеют проверенные временем решения. Эффективные подходы к решению широкого спектра сложных задач кодирования легко адаптировать и применять в собственных приложениях, а при необходимости создавать собственные структуры данных под конкретную задачу. Сбалансированное сочетание классических, продвинутых и новых алгоритмов обновит ваш инструментарий программирования, добавив в него новые перспективы и практические методы.
👍20🔥51
Как эффективно обрабатывать данные в высоконагруженных проектах?

Расскажет опытный эксперт на бесплатном практическом уроке «Асинхронная обработка данных и ее использование в высоконагруженных проектах» от OTUS. На вебинаре разберём:

- применение асинхронной обработки;
- архитектуру прототипа;
- узкие места прототипа.

Занятие пройдёт 15 февраля в 20:00 мск и будет приурочено к старту курса «Highload Architect». Доступна рассрочка на обучение!

Для бесплатного участия регистрируйтесь прямо сейчас: https://otus.pw/N6Xi/
👍72🔥1🎉1
esProc SPL — это язык сценариев для обработки данных с хорошо продуманными библиотечными функциями и мощным синтаксисом

Язык: Java

💥Stars: 4100
📝Forks: 287

https://github.com/SPLWare/esProc
7🔥3👍2