seniorjavist | Unsorted

Telegram-канал seniorjavist - Senior Java Developer

22676

№ 4931127152 Изучаем Java. По вопросам сотрудничества: @adv_and_pr Канал на бирже: https://telega.in/c/seniorjavist

Subscribe to a channel

Senior Java Developer

Метод replaceFirst()

Метод replaceFirst() в Java используется для замены первого подстроки в строке на другую подстроку. Этот метод является частью класса java.lang.String и принимает два параметра: регулярное выражение (регулярное выражение) и замену.

Сигнатура метода:

public String replaceFirst(String regex, String replacement)

Где:
regex — это регулярное выражение, которое вы ищете в строке.
replacement — строка, которой вы заменяете первое найденное совпадение с regex.

#для_начинающих

Читать полностью…

Senior Java Developer

Хакатон от МТС: 5 треков и 1 500 000 рублей. Для тех, кто готов воплотить идею в прототип

Приглашаем на хакатон МТС True Tech Hack 2025. Протестируй свои идеи и разработай решение на базе одной из пяти ИТ-платформ МТС.
Призовой фонд соревнования — 1 500 000 рублей.

Участие могут принять системные аналитики, Data Scientists, Data Engineers, frontend и backend-разработчики, Android-разработчики, бизнес-аналитики, аналитики данных, MLOps-инженеры, DevOps-инженеры, Product-менеджеры, ИТ-архитекторы, UI/UX-дизайнеры.

На хакатоне ты сможешь:

— Выбрать свой трек и создать решение на базе ИТ-платформ МТС.
— Побороться за призовой фонд — 1 500 000 рублей.
— Расширить свои профессиональные связи через нетворкинг с участниками хакатона и экспертами МТС.
— Повысить шансы на прохождение стажировки в МТС.
— Узнать больше о продуктах и технологиях МТС от экспертов компании

Регистрация до 16 апреля.

Регистрируйся прямо сейчас: https://truetechhack.ru/

Читать полностью…

Senior Java Developer

Шифр Цезаря

Шифр Цезаря — это простой шифр подстановки, который сдвигает каждую букву в сообщении на фиксированное количество позиций в алфавите.

В этом примере мы создали класс CaesarCipher, который содержит два метода: encrypt и decrypt. encrypt принимает сообщение и сдвиг, чтобы зашифровать его, а decrypt принимает зашифрованное сообщение и сдвиг, чтобы дешифровать его.

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

#для_начинающих

Читать полностью…

Senior Java Developer

Класс LinkedList

Класс LinkedList представляет собой двусвязный список, который является одной из структур данных для хранения и управления коллекцией элементов. LinkedList предоставляет реализацию интерфейсов List и Deque, что означает, что он может использоваться как список элементов и как двусторонняя очередь (двунаправленный список).

#для_начинающих

Читать полностью…

Senior Java Developer

SynchronousQueue

SynchronousQueue — это блокирующая очередь, в которой каждая операция вставки должна ждать соответствующей операции удаления другим потоком и наоборот.

В этом примере создается SynchronousQueue. Затем запускаются два потока: производитель и потребитель. Производитель пытается добавить значение в очередь с помощью метода put(). Этот метод заблокирует выполнение, пока другой поток не вызовет метод take(). Когда потребитель вызывает метод take(), он получает значение из очереди, и выполнение производителя продолжается.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Имеет ли смысл объявлять метод private final?

Объявление метода с модификаторами private и final имеет смысл, когда вы хотите:

— Скрыть детали реализации метода от других классов.
— Зафиксировать определенное поведение метода и не дать его переопределить.
— Сделать метод доступным только для использования внутри данного класса.

Читать полностью…

Senior Java Developer

NavigableSet

NavigableSet
это интерфейс, который расширяет интерфейс SortedSet и добавляет навигационные методы для поиска элементов в отсортированном множестве.

NavigableSet поддерживает следующие дополнительные операции:
— Поиск ближайшего элемента к заданному.
— Поиск элементов в заданном диапазоне.
— Получение подмножества элементов сначала или конца набора.

Основное применение NavigableSet — это реализация структур данных, где важен упорядоченный доступ к элементам, таких как:
— Деревья (Red-Black, AVL и др.).
— Приоритетные очереди.
— Сортированные словари.

Основные реализации в Java — TreeSet и ConcurrentSkipListSet.

Читать полностью…

Senior Java Developer

NavigableSet

NavigableSet
это интерфейс, который расширяет интерфейс SortedSet и добавляет навигационные методы для поиска элементов в отсортированном множестве.

NavigableSet поддерживает следующие дополнительные операции:
— Поиск ближайшего элемента к заданному.
— Поиск элементов в заданном диапазоне.
— Получение подмножества элементов сначала или конца набора.

Основное применение NavigableSet — это реализация структур данных, где важен упорядоченный доступ к элементам, таких как:
— Деревья (Red-Black, AVL и др.).
— Приоритетные очереди.
— Сортированные словари.

Основные реализации в Java — TreeSet и ConcurrentSkipListSet.

Читать полностью…

Senior Java Developer

Класс FileReader

FileReader
это класс, который позволяет считывать символьные данные из файла. Читает файл посимвольно в виде кодов UTF-16, а для работы принимает объект File или путь к файлу в конструктор.
Использует потоковый доступ для чтения данных.

Должен использоваться в try-with-resources блоке, чтобы корректно закрывать поток. Часто используется совместно с BufferedReader для удобства чтения по строкам.

Здесь мы открываем поток FileReader для чтения файла data.txt.
В цикле посимвольно считываем данные методом read() пока не достигнут конец файла.

#это_база

Читать полностью…

Senior Java Developer

ArrayUtils

ArrayUtils
это вспомогательный класс для работы с массивами из библиотеки Apache Commons Lang. Он содержит различные статические методы для манипуляций с массивами.

ArrayUtils широко используется в коде для упрощения работы с массивами, избавляя от рутинного написания циклов. Удобен при работе с параметрами и результатами методов в виде массивов.
Также может применяться для оптимизации кода, используя более эффективные реализации стандартных операций с массивами. Позволяет писать более чистый и читабельный код.

В этом примере мы импортируем класс ArrayUtils и создаем целочисленный массив. Затем используем метод indexOf() из ArrayUtils для поиска индекса элемента со значением 3.
Метод возвращает индекс найденного элемента в массиве или -1 если элемент не найден.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
В чем разница между Iterator и ListIterator?

— Iterator
может итерироваться только вперед, а ListIterator может и вперед и назад.

ListIterator имеет дополнительные методы previous(), hasPrevious(), add(), set().

— ListIterator позволяет получить индекс текущего элемента.

— ListIterator может начать итерацию с произвольного индекса списка, а Iterator только с начала.

ListIterator можно получить только из объектов, реализующих List, а Iterator из любой коллекции.

ListIterator является более функциональным и позволяет вносить изменения в список во время итерации, Iterator - только читать.

— Итераторы безопасны для использования в многопоточных приложениях, а ListIterator - нет.

Читать полностью…

Senior Java Developer

Метод Collections.shuffle

Метод shuffle() из класса Collections используется для перемешивания элементов коллекции в случайном порядке.
Он принимает в качестве аргумента список, элементы которого нужно перемешать и возвращает переданный список, но уже с измененным случайным порядком элементов. Сам список при этом не создается заново.

Использует алгоритм Фишера—Йетса для генерации случайной перестановки элементов, а также сам по себе является thread-safe - можно безопасно вызывать из разных потоков без синхронизации.

shuffle() не гарантирует уникальность создаваемых перестановок при многократном вызове. Работает за линейное время O(n).

#это_база

Читать полностью…

Senior Java Developer

🤝 Если код работает, это еще не значит, что он работает эффективно. Хотите разобраться, как ускорить приложения, найти утечки памяти и правильно деплоить их в облака?

🦾 На повышении квалификации «Java Developer. Advanced» вы изучите JVM на глубоком уровне, научитесь профилировать приложения, оптимизировать их под высокие нагрузки и выстраивать продвинутый мониторинг.

✔️ Глубокое погружение в устройство JVM
✔️ Практика с профилированием и трассировкой
✔️ Работа с Kubernetes, Prometheus и Grafana
✔️ Настройка метрик и логирования

Осталось несколько дней до закрытия набора.

➡️ Пройдите короткое тестирование для проверки своих навыков и присоединяйтесь к группе: https://otus.pw/oyX3a/

🎁 Начните обучение со скидкой, подробности у менеджеров. ПРОМОКОД: JAVA_03

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

Читать полностью…

Senior Java Developer

Стать бэкендером в Яндексе за несколько дней

12–17 апреля устраиваем Week Offer Backend: за несколько дней можно пройти технические секции и попасть в Яндекс. Для этого нужно зарегистрироваться и решить несколько задач в Контесте.

Ищем классных бэкенд-разработчиков с опытом работы от 3 лет на C++, Python, Java/Kotlin или Go, готовых работать в офисном или гибридном режиме в России.

Вы сможете выбрать одну из команд: Яндекс Пэй, Яндекс ID, Яндекс Плюс, Яндекс Сплит, Яндекс Сейвы, Яндекс 360. Можно пообщаться с нанимающими менеджерами и выбрать самый интересный проект. Если всё пройдёт хорошо, сразу же получите офер.

Узнать подробности и зарегистрироваться можно здесь.

Реклама. ООО "Яндекс". ИНН 7736207543

Читать полностью…

Senior Java Developer

Класс AbstractSet

Класс AbstractSet в Java является частью Java Collection Framework , которая реализует интерфейс Collection и расширяет класс AbstractCollection. Он обеспечивает скелетную реализацию интерфейса Set. Этот класс не переопределяет какие-либо реализации из класса AbstractCollection, а просто добавляет реализации для методов equals() и hashCode().

Подробнее можно почитать здесь.

Читать полностью…

Senior Java Developer

Интерфейс UnaryOperator

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

#для_продвинутых

Читать полностью…

Senior Java Developer

Hibernate ORM

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

В этом примере мы создаем класс Student, который аннотируется с помощью аннотаций Hibernate, указывающих, что данный класс является сущностью, а его поля соответствуют столбцам в таблице базы данных. Затем мы создаем объект SessionFactory и используем его для сохранения и получения объекта Student из базы данных.

#для_начинающих

Читать полностью…

Senior Java Developer

📕 Открытый урок по разработке веб-приложений на Scala

На открытом уроке 1 апреля в 20:00 мск мы погрузимся в мир бэкенд-разработки на Scala.

📗 В результате вы:

— Узнаете ключевые аспекты создания современных веб-приложений на Scala;
— Познакомитесь с популярными фреймворками и инструментами для работы с базами данных;
— На практике создадите простое CRUD-приложение для закрепления навыков.

Спикер: Алексей Воронец — руководитель разработки департамента проектных решений и поисковых систем в компании Naumen, эксперт с 14-летним опытом, специализирующийся на Scala и функциональном программировании.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие

https://otus.pw/5BIv/

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

Читать полностью…

Senior Java Developer

Большие числа BigInteger

В Java для работы с большими числами (такими, которые не умещаются в примитивные типы данных) используется класс BigInteger из пакета java.math. Этот класс позволяет производить арифметические операции с большими числами, которые могут содержать до 2^31-1 битов.

#для_начинающих

Читать полностью…

Senior Java Developer

IT-инженеры объединяйтесь! 🤝

Мы собрали огромную базу прикладной информации для IT-инженеров.

Выбирайте, что вам интересно:

Полупроводники

Высоконагруженные системы

— Связь и космос

— Промышленный дизайн

— Нейроморфные технологии

— Индустрия 4.0

— Печатные платы

— Технологии мира музыки


📌 Статьи, лекции, подкасты, кейсы из инженерной практики и тематические гайды в одном месте
@ultimate_engineer

Читать полностью…

Senior Java Developer

Когда специалист становится профи? Когда студенты зовут его «Наставник!»
Делитесь экспертизой — станьте экспертом Яндекс Практикума.

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

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

Почему это интересно:
▪︎ удалёнка и дополнительный доход,
▪︎ благодарная аудитория, возможность самореализации,
▪︎ энергичное комьюнити и коллеги, с которыми не скучно.

Если вы в знаете технологии Java 8 и выше — добро пожаловать!

Посмотрите, что ожидают от кандидата, и откликайтесь, если интересно.

Читать полностью…

Senior Java Developer

Интенсив по очередям: Kafka & NATS

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

🌐 В программе курса:

▪️Асинхронное взаимодействие с помощью очередей: подходы, свойства, гарантии
▪️Какие бывают очереди, основные системы очередей, на какие свойства и требования смотреть при выборе
▪️Как конфигурировать и управлять системами очередей
▪️Архитектура Apache Kafka, streams, topics, конфигурации от минимального single instance до production grade кластера с отказоустойчивостью
▪️Архитектуры NATS, pub/sub, req/res, streaming, кластер, суперкластер, федерация, edge.

Всё в формате «живых» онлайн-сессий (лекции, брейнштормы, демо).

🥸 Кто мы: R&D-центр Devhands.io, наш канал (/channel/rybakalexey). Автор курса — Владимир Перепелица, эксперт по большим проектам, очередям и Tarantool, Solution Architect в Exness, создатель S3 в VK Cloud, регулярный спикер и член ПК конференций Highload. 

🗓 Старт курса 8 апреля, 5 недель обучения. Изучить программу и записаться можно здесь. 

Ждём вас!

Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqxRxeAL

Читать полностью…

Senior Java Developer

BeanFactory

BeanFactory
это интерфейс, который предоставляет механизм для управления объектами bean в контейнере Inversion of Control (IoC).

BeanFactory является основой фреймворка Spring, где используется для создания приложений по принципу IoC и Dependency Injection. Он позволяет создавать гибкие, легко тестируемые приложения с инверсией управления и внедрением зависимостей.

Читать полностью…

Senior Java Developer

#вопросы_с_собеседований
Что будет, если единственный конструктор класса объявлен как final?

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

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

Читать полностью…

Senior Java Developer

👩‍💻 Rate-limiter. Bucket4j

Приглашаем на открытый урок.

🗓 24 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java Developer. Professional».

Продолжаем изучать библиотеки обеспечения устойчивости приложений. На примере Bucket4j посмотрим устройство распределенного Rate-limiter-а.

О чём поговорим:

✔️ Познакомимся с библиотекой Bucket4j.
✔️ Узнаем основные принципы действия и сценарии применения.

Кому будет интересно:
Вебинар будет полезен Java-разработчикам, архитекторам ПО и инженерам по устойчивости систем, заинтересованным в эффективном управлении потоками запросов и защите приложений от перегрузок.

🔗 Ссылка на регистрацию: https://otus.pw/iTmCg/

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

Читать полностью…

Senior Java Developer

⚡️ Айтишник из «VISION» скупил курсы айти школ и выложил гигабайты материалов к себе

Каждый найдет что-то по душе:

1202 ГБ — Python
1811 ГБ — Frontend
1100 ГБ — C / C++ / C#
804 ГБ — Java
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin / Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA / Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн


Материалы в закрепе, постоянно пополняются👆🏻

Читать полностью…

Senior Java Developer

Метод equalsIgnoreCase()

Метод equalsIgnoreCase() используется для сравнения двух строк без учета регистра (заглавных и строчных букв).
Принимает в качестве аргумента вторую строку для сравнения, сравнивает две строки посимвольно после приведения их к одному регистру и возвращает boolean значение - true или false.

Работает намного быстрее, чем сравнение через toUpperCase/toLowerCase.
Полезен при сравнении пользовательских строк и лучше использовать его вместо ручного сравнения через equals.

#это_база

Читать полностью…

Senior Java Developer

Priority Queue

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

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

PriorityQueue не поддерживает изменение приоритета элемента после добавления.

Читать полностью…

Senior Java Developer

ConcurrentSkipListSet

ConcurrentSkipListSet
- это thread-safe реализация отсортированного множества на основе skip list.
Элементы в нем хранятся в сбалансированной иерархии, похожей на связный список и дубликаты не допускаются, также поддерживает unicity элементов.

Автоматически сортирует элементы по естественному порядку или компаратору. Все основные методы потокобезопасны из коробки.
Подходит для частого добавления/удаления/поиска элементов из разных потоков. Масштабируется лучше чем synchronized Set при увеличении количества потоков.

ConcurrentSkipListSet используется в многопоточных приложениях для хранения уникальных элементов в отсортированном порядке, выполнения быстрых операций поиска, добавления, удаления за время O(log n), избежания проблем синхронизации.

Читать полностью…

Senior Java Developer

👩‍💻 Открытый урок «DAO на Spring JDBC»

🗓 26 марта в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Разработчик на Spring Framework»

Использование нативного SQL с Spring JDBC позволяет создать безопасное, поддерживаемое и тестируемое DAO для эффективного доступа к данным.

О чём поговорим:
- Преимущества нативного SQL при разработке DAO.
- Основные возможности Spring JDBC для работы с запросами.
- Подходы к обеспечению безопасности и тестируемости DAO.

🔗 Ссылка на регистрацию: https://otus.pw/23KE/

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

Читать полностью…
Subscribe to a channel