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
🖥 Как сохранить большой текстовый файл на Java наиболее оптимальным образом

Давайте сгенерируем строку из случайных символов на Java и затем сохраним её в текстовый файл. Строка должна быть очень большой (более 100 миллионов символов), чтобы мы могли легко заметить разницу во времени, которое требуется на сохранение файла.

Рассмотрим 3 варианта: обычный FileWriter, FileWriter с буферизацией и неблокирующее сохранение файла с помощью пакета java.nio. В конце подведём итоги.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Как архитекторам и разработчикам попасть в крупный инновационный проект?

Изучить микросервисную архитектуру под руководством топовых специалистов крупнейших компаний всего за 5 месяцев на онлайн-курсе от OTUS.

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

Курс нацелен на глубокое изучение темы и получение практических навыков, в рамках обучения вы рассмотрите работу с очень популярными сейчас инструментами – Kubernetes и Docker.

Переходите на сайт, чтобы записаться на 2 пробных бесплатныx открытых урока:
«CAP-теорема и управление ожиданиями пользователей» (регистрация на урок без тестирования)
«Паттерны RESTful API» (регистрация на урок через тестирование)
👍5🔥2
Реверс массива

Реверс массива в Java означает изменение порядка элементов массива на противоположный. То есть, элементы, которые изначально были в начале массива, становятся в конце, и наоборот.

Реверс массива может быть полезным во многих ситуациях программирования. Например, это может потребоваться для изменения порядка элементов перед их обработкой или выводом, или для выполнения действий, которые требуют доступа к элементам массива в обратном порядке.
👍216😁2🎅2
☘️ Изучите Spring и в 2024 году вас ждёт профессиональная удача

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

🔝 Приходите на онлайн-курс «Разработчик на Spring Framework» от OTUS!

Что вы получите:
✔️ Понимание, как создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке.
✔️ Умение быстро проходить путь от идеи до production-grade.
✔️ Владение фреймворками Spring и технологиями вспомогательных проектов (Spring MVC, Spring Security, Spring Boot, Spring Reactive Stack, Spring 5).

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

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

Метод charBuffer() используется для получения буфера символов из строки. Он принадлежит классу String.

Этот метод возвращает объект CharBuffer, который представляет последовательность символов строки.
CharBuffer позволяет эффективно читать и манипулировать символами строки без создания копий.

В этом примере создается строка «Hello». Затем из этой строки получаем буфер символов методом charBuffer().
В цикле посимвольно читаем из буфера символы и выводим их на экран.
15👍8
Разберитесь в RESTful API и усильте свое резюме

На открытом практическом уроке от OTUS, где вы вместе с опытным экспертом:

- рассмотрите уровни зрелости REST;
- обсудите концепцию HATEOAS;
- изучите различные паттерны REST, включая их реализацию в форматах json-api и odata;
- научитесь генерировать клиент к сервису по openapi idl.

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

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

UnmodifiableMap используется для создания неизменяемого представления отображения, это позволяет предоставить доступ к отображению, не давая возможности изменить его.

Как видно из примера, при попытке изменить неизменяемое отображение unmodifiableMap выбрасывается исключение UnsupportedOperationException. Это гарантирует, что исходное отображение не будет случайно изменено.
👍23🔥54
Средства обнаружения действий внутреннего нарушителя (PAM и другие решения)

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

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

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

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

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


Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
👍51🔥1
Какие существуют особенности использования вложенных классов: статических и внутренних? В чем заключается разница между ними?

• Вложенные классы могут обращаться ко всем членам обрамляющего класса, в том числе и приватным.
• Для создания объекта статического вложенного класса объект внешнего класса не требуется.
• Из объекта статического вложенного класса нельзя обращаться к не статическим членам обрамляющего класса напрямую, а только через ссылку на экземпляр внешнего класса.
• Обычные вложенные классы не могут содержать статических методов, блоков инициализации и классов. Статические вложенные классы - могут.
• В объекте обычного вложенного класса хранится ссылка на объект внешнего класса. Внутри статической такой ссылки нет. Доступ к экземпляру обрамляющего класса осуществляется через указание .this после его имени. Например: Outer.this.
👍19😁1🎉1
Как пройти собеседование в компанию мечты? ☄️

26 января проведем техническое собеседование на позицию Senior Java Developer в «Цифровые Привычки», 350.000₽+

В прямом эфире:

Разберем реальное CV;
Обсудим, на что обращают внимание рекрутеры, а на что — интервьюеры;
Расскажем о частых ошибках на собеседовании и как не допустить их.

А после эфира поделимся чек-листом, который поможет учесть все требования 2024 года при подготовке к собеседованию.

Интервьюер – Роберт Мазипов. Java Architect с опытом программирования на Java 4 года. Преподаватель на курсе Senior Java Developer.

Больше — в прямом эфире!
Регистрация по ссылке: https://clck.ru/38B35F

Реклама. ООО "Платформа непрерывного обучения" ИНН 7839405924
erid: 2VtzqxHFvRk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2
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