seniorjavist | Unsorted

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

-

Изучаем Java. По вопросам сотрудничества: @seniorvladislav

Subscribe to a channel

Senior Java Developer

Ссылочные типы

В Java все типы данных делятся на две категории: примитивные типы и ссылочные типы. Ссылочные типы данных представляют собой объекты, которые содержат данные и методы для работы с ними. В отличие от примитивных типов, переменные ссылочных типов хранят ссылку на объект, а не его значение.

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

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

Senior Java Developer

Сортировка Шелла

Если простыми словами, то сортировка Шелла это алгоритм сортировки массива, который улучшает производительность сортировки вставками.

Он основан на сравнении элементов, находящихся не только рядом, но и на определенном расстоянии друг от друга.

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

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

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

Senior Java Developer

Переопределение методов в классах наследниках

В Java можно переопределить методы в классах-наследниках с помощью ключевого слова @Override. Переопределение метода позволяет изменить его реализацию в подклассе, сохраняя при этом сигнатуру (имя, типы параметров и возвращаемое значение) метода из суперкласса.

Обратите внимание на использование аннотации @Override перед переопределенным методом в классе Subclass. Это помогает компилятору обнаружить ошибки, если вы случайно ошиблись в сигнатуре метода или не переопределили метод правильно.

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

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

Senior Java Developer

Инвертированный индекс

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

Ниже приведен пример простой реализации инвертированного индекса на языке Java. Этот пример демонстрирует создание инвертированного индекса для небольшой коллекции документов.

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

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

Senior Java Developer

⚡️🪫Что делать, если система не справляется с нагрузкой? Узнайте, как эффективно справляться с нагрузками и обеспечивать бесперебойную работу ваших приложений!

🔥23 января в 20.00 мск. приглашаем на открытый вебинар в OTUS, где мы  обсудим подходы для решения проблем, связанных с производительностью системы.

Вопросы вебинара:

- Как правильно реализовать один сервис?
- Что такое нагрузочное тестирование, и как его проводить?
- Как оптимизировать код и улучшить производительность?
- Зачем нужны OpenTelemetry и платформа наблюдаемости?
- Как провести трассировку запроса и оптимизацию запросов к БД?
- Что такое репликация и шардирование в MSA?

Убедитесь, что ваша система готова к любым нагрузкам!


👉Регистрация https://otus.pw/i5O4/

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

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

Senior Java Developer

Юнит-тестирование в Java

Юнит-тестирование — это процесс тестирования отдельных блоков кода (юнитов) с целью обеспечения их корректной работы и выявления возможных ошибок и проблем в функциональности. Юнит-тесты должны быть маленькими, изолированными и быстрыми, и они позволяют выявить ошибки и несоответствия в вашем коде на ранних этапах разработки. В Java для написания юнит-тестов часто используется фреймворк JUnit. Вот как написать и запустить юнит-тесты в Java с использованием JUnit.

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

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

Senior Java Developer

Сервлеты

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

Сервлет получает запрос от браузера, обрабатывает его и отправляет ответ в браузер.

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

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

Senior Java Developer

Интерфейс Predicate

Интерфейс Predicate представляет собой функциональный интерфейс, который принимает один аргумент и возвращает булево значение. Его можно использовать для определения условий, на основе которых можно фильтровать данные.

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

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

Senior Java Developer

Как вызвать один конструктор из другого?

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

В приведенном выше примере конструктор по умолчанию вызывает конструктор с параметром, передавая ему значение 0.

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

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

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

Senior Java Developer

«Клиент-серверная архитектура на Java» — это серьёзный апгрейд Java-скиллов. Если хочешь разобраться в тонкостях клиент-серверных приложений и не бояться сложных задач — тебе на этот курс!

Курс построен на формате живых вебинаров и домашних заданий с проверкой.

Старт курса - 25 января

Вам доступно небольшое демо-занятие для проверки знаний, чтобы убедиться, что курс тебе точно по силам.

Программа курса охватывает ключевые аспекты разработки клиент-серверных приложений на Java, включая:

☕️ Многопоточность в Java: изучение классов Thread и Runnable, использование атомарных типов данных, потокобезопасных коллекций и паттерна пула потоков для эффективной синхронизации и оптимизации задач.

🖥 Разработка графических интерфейсов: создание GUI с помощью библиотек Swing и JavaFX, применение архитектуры MVC и разметки на FXML для разработки удобных пользовательских интерфейсов.

🗄 Работа с базами данных: взаимодействие с базами данных через JDBC API, создание запросов, управление метаданными, предотвращение SQL-инъекций и интеграция этих знаний в разработку распределённых веб-приложений на Java с использованием сервлетов и фреймворков, таких как JSF.

Получить демо-доступ к курсу

Реклама. Информация о рекламодателе

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

Senior Java Developer

👩‍💻 «OpenAPI + Spring».

Приглашаем на открытый урок, где мы разберем:

✔️ Что такое OpenAPI и для чего она нужна.;
✔️ Генерация спецификаций;
✔️Интеграция OpenAPI в Spring-приложения;
✔️Советы по масштабируемости и поддержке.

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

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

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

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

Senior Java Developer

Логирование данных

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

Суть логеров в записи данных из программы, дополняя её такими данными как время, место, уровень и так далее.

Самым популярным логером на данный момент является Log4J, установить который можно с помощью Maven/Gradle.

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

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

Senior Java Developer

Как разделить строку на части?

В Java можно разделить строку на части с помощью метода split() класса String. Метод split() разбивает исходную строку на массив строк, используя заданный разделитель.

В этом примере исходная строка «Это пример строки для разделения» разбивается на части с помощью пробела в качестве разделителя. Однако, если у вас есть другой разделитель (например, запятая или точка с запятой), просто замените значение переменной delimiter на соответствующий разделитель в вашем случае.

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

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

Senior Java Developer

👩‍💻 Как сделать Java-приложения быстрее и эффективнее?

Асинхронное программирование — must-have для современных приложений. Хотите узнать, как использовать NIO2 для максимальной производительности?

🗓 20 января в 20:00 мск — откроем двери в мир Java NIO2! Разберём основы, научим писать асинхронный код и раскроем секреты пропускной способности приложений.

Успейте записаться, чтобы не упустить возможность освоить продвинутые инструменты Java.
А еще участники вебинара получат скидку на обучение на курсе «Java Developer. Advanced».

➡️ Регистрация на вебинар: https://otus.pw/btR5/

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

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

Senior Java Developer

Интерфейс Supplier

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

Метод Supplier:

T get();
Где T -- это тип возвращаемого значения.

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

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

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

Senior Java Developer

👩‍💻 Работаете с Java, но хотите попробовать себя в Android-разработке?

👩‍💻 Начните с простой и полезной задачи — приложения для заметок!

На открытом уроке 27 января 2025 в 20:00 вы освоите:

— Создание списков через RecyclerView.
— Работу с базой данных Room.
— Использование Flow для обновления данных.

Это отличный шанс погрузиться в мир Android. К тому же, все участники вебинара получат скидку на обучение на курсе «Android Developer»!

➡️ Регистрация на вебинар: https://otus.pw/zwwl/

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

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

Senior Java Developer

Мечтаешь о той самой работе в Big Tech, но никогда не проектировал системы? Или работаешь на галере с нулевым подходом к проектированию и не знаешь, а как разбираться в архитектуре приложений?

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

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

Приходи на мой Открытый Урок, где за час мы посмотрим на эти самые компоненты. А еще я расскажу про процесс проектирования в Big Tech и что такое system design секция.

В конце лекции анонс продукта, который поможет тебе навсегда решить проблему с проектированием.

ЗАПИСАТЬСЯ

PS: недавно проходил собес в один российский Big Tech. Результат можешь увидеть на скрине

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

Senior Java Developer

👩‍💻 Хотите, чтобы ваши приложения на Java выдерживали любую нагрузку?

Executors — это не просто инструмент, а секретная «суперсила» JDK для управления потоками. Разберем, как грамотно настраивать пулы потоков и использовать их в реальных проектах.

🗓 На открытом уроке 27 января в 20:00 мск мы покажем, как сделать ваши сервисы быстрее и надежнее, даже если нагрузки растут. Участники получат скидку на большое обучение «Java Developer. Professional».

🎙 Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.

➡️ Успейте зарегистрироваться и узнайте, как улучшить свои навыки в многопоточности с помощью Executors: https://otus.pw/Z7XA/

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

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

Senior Java Developer

Получить атомное время из интернет-часов

Для получения атомного времени из интернет-часов в Java вы можете воспользоваться классом java.net.URL для выполнения HTTP-запроса к одному из сервисов времени, таким как «time.google.com». Затем вы можете обработать полученный ответ и извлечь атомное время.

Обратите внимание, что формат ответа от сервиса времени может различаться, и вам может потребоваться настроить метод parseAtomicTime для вашего конкретного сервиса. Подобные сервисы могут предоставлять атомное время в разных форматах, таких как ISO 8601 или Unix Timestamp.

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

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

Senior Java Developer

abstract

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

Это позволяет упростить проектирование классов и повторно использовать код.

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

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

Senior Java Developer

Программист - самая востребованная профессия в 2025!

Тогда почему ты опять не получил оффер?

Пока ты боишься говорить о деньгах и мямлишь про свой опыт, кто-то другой занял твое место. Чтобы HR выстраивались в очередь, приходи на лекцию от команды FAANG School.

Отдаем бесплатно то, что продают за бешенные деньги на карьерных консультациях.

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

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

Приходи на эфир, чтобы выделяться среди конкурентов и самому выбирать офферы.

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

Senior Java Developer

👋 Меня зовут Николай, я - техлид в крупном банке

На текущий момент провел более 100 собеседований разработчиков уровня middle+, при этом сам регулярно прохожу собеседования и получаю офферы в крупнейшие компании: Яндекс, Альфу, Сбер и др.

Благодаря этому я накопил большой опыт в прохождении собеседований, знаю какие вопросы задают и как правильно на них отвечать, чтобы получить заветный оффер

Занимаюсь менторингом действующих разработчиков Java, кто хочет повысить свою зарплату, а также тех, кто имеет опыт самостоятельного обучения и хочет найти первую работу Java разработчиком (совсем без знаний будет трудно)

На менторинге показываю каким образом ведется разработка реального проекта, расставляю приоритеты в обучении, готовлю к собеседованиям, даю домашнее задание и провожу ревью, отвечаю на любые вопросы. По окончании курса мы с вами напишем 3 микросервиса и 1 библиотеку (spring boot starter), которые могут вам встретится в реальной работе и станут частью вашего резюме

Все ученики первого потока успешно трудоустроились, три человека получили оффер более 200 тысяч рублей в месяц

Второй поток в самом разгаре, обучаются как ребята смежных IT специальностей (аналитики, специалисты сопровождения, разработчики других ЯП), так и действующие Java разработчики с несколькими годами опыта

Всего обучение прошли или проходят 25 учеников

Курс содержит 35 часов лекций и 15 часов живого разбора вопросов. Кроме того вы получите доступ к вопросам, которые задавали мне и моим ученикам на реальных собеседованиях

Третий поток начинается 8 февраля, если хотите участвовать - заполните анкету и я с вами свяжусь

Также я веду блог пишу статьи на habr

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

Senior Java Developer

Сортировка слиянием (Merge Sort)

Сортировка слиянием - это алгоритм сортировки, который основан на разделении массива на меньшие части, сортировке каждой части и объединении этих частей в отсортированный массив. Он имеет сложность O(n log n) и может быть эффективно использован для сортировки больших наборов данных.

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

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

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

Senior Java Developer

Класс Properties

Класс Properties — это подкласс Hashtable. Он используется для хранения списков значений, в которых ключ является String, а значение также является String.

Класс Properties используется множеством других классов. Например, это тип объекта, возвращаемый System.getProperties(), когда тот получает внешние значения.

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

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

Методы и классы, объявленные Properties, можно посмотреть здесь.

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

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

Senior Java Developer

Класс Stack

Класс Stack является подклассом класса Vector. Стек является линейной структурой данных, где элементы добавляются и удаляются в соответствии с принципом «последним вошел, первым вышел» (LIFO — Last-In, First-Out).

В Java, класс Stack был часто использован в более ранних версиях для работы со стеками, но в более современных версиях рекомендуется использовать класс Deque (Double-ended queue) из пакета java.util. Deque предоставляет методы для работы как со стеком, так и с очередью.

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

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

Senior Java Developer

Когда использовать рефлексии?

Уверен многих кто только начал учить ReflectionAPI удивили возможности этого инструмента. Но работа с ним довольно тяжёлая для системы, поэтому лучше использовать её в крайних случаях.

К примеру — обработка класса с аннотациями (пример выше). Извлекая аннотации из объектов класса, можно обрабатывать её каким угодно образом.

Также рефлексии часто применяют в тестировке, а именно для приватных полей и методов. Достаточно получить метод из класса, задать method.isAccessible(true) и можно вызывать его как публичный.

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

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

Senior Java Developer

Бесплатный интенсив: Java-разработчик: старт в профессии с нуля.

📆 Когда: 20-21 января в 19:00 по мск.

За два дня интенсива в прямом эфире, под руководством опытного Java-разработчика, вы сможете:


✔️ Изучить базовые конструкции языка — переменные, типы данных, условные конструкции, циклы, импорты библиотек.
✔️ Написать свой первый проект и определить, подходит ли вам профессия разработчика.
✔️ Создать консольное приложение и протестировать собственного бота.
✔️ Узнать ответы на интересующие вас вопросы.
✔️ Получить доступ к закрытому профессиональному сообществу.

🎁 Подарки для участников
интенсива: гайд «Как заговорить на сленге IT-специалистов», карта компетенций начинающего Java-разработчика!


Реклама. ООО "ХЕКСЛЕТ РУС". ИНН 7325174845. erid:2W5zFJA7L6L

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

Senior Java Developer

Класс DataOutputStream и его методы

Поток DataOutputStream позволяет записывать примитивные данные в исходный код.

Если используйте объект DataOutputStream, то у Вас есть под рукой вспомогательные методы, которые можно использовать для записи потока или для выполнения других операций над потоком.

Все перечисленные методы можно просмотреть здесь.

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

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

Senior Java Developer

Метод flatMap

Метод flatMap используется в контексте работы с потоками (streams) в пакете java.util.stream. Он представлен в интерфейсе Stream<T> и предназначен для преобразования элементов потока, когда каждый элемент может быть преобразован в ноль или один элемент другого потока.

Метод flatMap применяет функцию mapper к каждому элементу исходного потока и «разворачивает» (сплющивает) поток элементов в один объединенный поток, игнорируя нулевые потоки, которые могут быть результатом преобразования.

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

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

Senior Java Developer

LeetCode теперь в Telegram!

LeetCode — это сайт, который позволяет быстро готовиться к техническим собеседованиям по программированию. Там публикуются задачи с собеседований в Google и Microsoft с решениями.

Подписывайтесь: @leetcode

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