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

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

#вопросы_с_собеседований
Скомпилируется ли код с картинки?

Да, код будет скомпилирован, потому что он следует спецификации функционального интерфейса, определяющей только один абстрактный метод. Второй метод, count, является методом по умолчанию, который не увеличивает количество абстрактных методов.

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

Senior Java Developer

⭐️🚀 Смарт-контракты управляют миллионами транзакций в мире блокчейна. Хотите научиться их разрабатывать?

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

После открытого вебинара вы сможете создать свой первый контракт, поймёте принципы работы Solidity и подготовитесь к профессиональному росту в Web3-разработке.

⏰ Встречаемся 19 марта в 20:00 мск! Участники получат скидку на большое обучение «Solidity Developer».

👉 Для участия зарегистрируйтесь https://otus.pw/SmOM/

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

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

Senior Java Developer

👩‍💻 Создание приложения Блокнот на Java 👩‍💻

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

На вебинаре мы разработаем полноценное приложение «Блокнот» с графическим пользовательским интерфейсом, демонстрирующее базовые принципы создания текстового редактора на Java.

В процессе занятия мы реализуем такие функциональные возможности, как:
- создание нового текстового файла, его сохранение,
- загрузка уже существующего файла,
- редактирование текста, подсчет статистических данных и другие операции, характерные для текстовых редакторов.

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

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

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

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

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

Senior Java Developer

#вопросы_с_собеседований
Какие подклассы класса Reader вы знаете, для чего они предназначены?

Reader - абстрактный класс, описывающий символьный ввод;
BufferedReader - буферизованный входной символьный поток;
CharArrayReader - входной поток, который читает из символьного массива;
FileReader - входной поток, читающий файл;
FilterReader - абстрактный класс, предоставляющий интерфейс для классов-надстроек;
InputStreamReader - входной поток, транслирующий байты в символы;
LineNumberReader - входной поток, подсчитывающий строки;
PipedReader - входной канал;
PushbackReader - входной поток, позволяющий возвращать символы обратно в поток;
StringReader - входной поток, читающий из строки.

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

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

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

Senior Java Developer

Напишите программу на Java для вставки данного элемента в очередь с приоритетами

Ответ на картинке.

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

Senior Java Developer

Извлекаем имя из адреса электронной почты

Метод extractNameFromEmail принимает строку с адресом электронной почты и возвращает подстроку до символа "@" (если символ "@" присутствует в строке) в качестве имени.

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

Senior Java Developer

Object[] vs custom Class

Код с Object абсолютно не читабельный, когда приходится работать с возвращаемым значением в другом месте.То есть, чтобы понять что же хранит в себе возвращаемое значение — нужно вернуться в класс вызова и читать комментарии к методу, если же, конечно, они есть, а если нет, вникать в код, что не очень эффективно. Собственно, я сам этим иногда грешу, когда очень спешу. С этим можно смириться, если это очень редко, но, все же, в таких ситуациях лучше создавать новый класс. Облегчите жизнь тем, кто придет после вас.

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

Senior Java Developer

🔴 20 марта состоится ключевая конференция по трафику и продажам в Telegram!

Будет полезно тем, кто:

— Уже работает с Telegram Ads или посевами и стремится кратно улучшать CTR, CPC, CPL, CPO, ROI и другие показатели.
— Использует Telegram для продажи услуг и инфопродуктов и хочет вывести свой бизнес на новый уровень.
— Планирует начать зарабатывать в Telegram и ищет проверенные инструменты и стратегии.

🔥Состав спикеров сильнейший:

• Ирина Хакамада — номинант Нобелевской премии Мира и одна из 10 лучших бизнес-спикеров России.
• Георгий Лобушкин — бывший пресс-секретарь Павла Дурова.
• Феликс Зинатуллин — Основатель Церебро.
• Дмитрий Форман — digital-директор «Самолёт».
• Марат Шайхетдинов — Основатель TgConf и Clickise.
• Алексей Соловьев — Лидер TON Society СНГ.
• Иван Боричев — крупнейший канал о Петербурге, первый телеграм-бар. Продажи рекламы > 15 млн. в месяц
• Дарья Фарберова — ведущий специалист по таргетированной рекламе в Контуре.
• Кирилл Сибиряк — выручка 2 млрд рублей за 2 года. Вывел 4 онлайн-школы с 0 до 100 млн+ месяц с помощью моделей продаж в Telegram.
• Павел Калюканов — продукт-менеджер TgStat, без которого статистика не была бы такой прозрачной.
И более 25 других спикеров!

Хедлайнер выступления на Afterparty конференции — группа «Город 312»! 🔥 Оторвемся под известные хиты, сделаем фото с кумирами молодости, зарядимся их энергией, и погрузимся в атмосферу праздника.

TgConf - уже зарекомендовали себя, как конференция высокого уровня с отличной организацией и действительно интересной и эффективной информацией.

— Инсайты о рекламе и Telegram, которые не найдете в открытом доступе.
— Возможность задать вопросы лидерам отрасли и получить ответы из первых уст.
— Нетворкинг, который расширит границы вашего бизнеса и даже поможет получить выгодные контракты на сотрудничество
— Закрытая Afterparty с VIP-участниками и музыкальной группой.

🗓 Когда: 20 марта
📍 Где: Main Stage, Москва
🎤 Ведущие конференции: Ярослав Бабушкин, журналист Forbes Russia и Наиль Байков — организатор аффилиат-мероприятий, ведущий телепередач и бизнес-тренер.

🎟 Приобретайте билеты на сайте.
Совсем скоро будет повышение цен!

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