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

IllegalStateException

IllegalStateException является исключением (exception), которое указывает на то, что метод был вызван в недопустимом или неправильном состоянии объекта. Это исключение обычно выбрасывается, когда какая-то операция не может быть выполнена, потому что объект находится в некорректном состоянии.

В примере на картинке, если метод performOperation вызывается до того, как объект будет инициализирован методом initialize, то будет выброшено исключение IllegalStateException. Также, если попытаться повторно инициализировать объект, снова будет выброшено исключение IllegalStateException.

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

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

Senior Java Developer

🦾👩‍💻Хардкорный тест по языку Java👩‍💻🦾

👩‍💻 Пройдите тест из 21 вопроса и проверьте, насколько вы готовы к обучению на углубленном курсе «Разработчик на Spring Framework» от OTUS.
Сможете сдать - пройдете на курс по спеццене!

💻 За 5 месяцев обучения вы освоите современные возможности Spring, научитесь быстро проходить путь от идеи до production-grade, создавать Web-приложения на микросервисной архитектуре и решать высокоуровневые задачи по разработке.

Время прохождения теста ограничено 30 минут

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

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

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

Senior Java Developer

Метод putAll()

Метод putAll() принадлежит интерфейсу Map и используется для добавления всех элементов из одной карты (Map) в другую. Этот метод принимает в качестве аргумента другую карту и добавляет все ее записи в вызывающую карту.

Например, если у вас есть две карты, содержащие данные, и вам нужно объединить их для выполнения операций на полном объеме данных, метод putAll() предоставляет простой способ объединения.

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

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

Senior Java Developer

Метод startsWith()

Метод startsWith() является частью класса String и используется для проверки того, начинается ли строка с определенной подстроки. Вот сигнатура метода:

public boolean startsWith(String prefix)


Этот метод возвращает true, если вызывающая строка начинается с указанного префикса (prefix), и false в противном случае.

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

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

Senior Java Developer

Метод compareTo()

Метод compareTo() используется для сравнения двух объектов. Обычно он применяется к объектам, реализующим интерфейс Comparable, чтобы определить их относительный порядок. Вот как обычно выглядит сигнатура метода compareTo():

int compareTo(T obj)


где T — это тип объектов, с которыми сравнивается текущий объект. Метод возвращает отрицательное целое число, ноль или положительное целое число в зависимости от того, как текущий объект сравнивается с переданным объектом obj.

— Отрицательное число указывает на то, что текущий объект меньше, чем объект obj.
— Ноль указывает на то, что текущий объект равен объекту obj.
— Положительное число указывает на то, что текущий объект больше, чем объект obj.

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

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

Senior Java Developer

🎥 Приглашаем вас на вебинар "Обзор децентрализованных web3 приложений (dApp) 2025 года".

📝 На уроке:
- Проведём обзор самых интересных и перспективных децентрализованных приложений (dApp), которые сейчас активно развиваются в экосистеме Web3.
- Узнаете, как устроены dApp, какие технологии лежат в их основе (блокчейн, смарт-контракты, криптография) и как они меняют привычные подходы к взаимодействию пользователей с интернетом.
- Разберём примеры из разных сфер: DeFi (децентрализованные финансы), NFT, GameFi, социальные сети и другие.

💪 В результате получите:
- Понимание, что такое dApp и как они работают.
- Обзор самых популярных и инновационных децентрализованных приложений.
- Представление о том, как можно использовать dApp в различных сферах жизни.
- Вдохновение и идеи для собственных проектов в Web3.

Приходите на вебинар и получите скидку на большое обучение «Solidity Developer» и выходите на новый уровень в блокчейн-разработке.

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

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

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

Senior Java Developer

Single Responsibility Principle

Принцип единственной ответственности (Single Responsibility Principle, SRP) является одним из принципов SOLID, предложенных Робертом Мартином. Этот принцип гласит, что у класса должна быть только одна причина для изменения. Иными словами, класс должен выполнять только одну ответственность.

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

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

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

Senior Java Developer

А всё, а раньше надо было!

Именно это скажут вам потерянные данные, когда из Кафки они превратятся в кашку. Лучше разбираться в инструменте до того, как начнёшь с ним работать по-серьёзному — не только в теории, но и на практике.

Пока все данные на месте, приходите на «Apache Kafka для разработчиков»:

➡️ Разберётесь в основах Kafka, её архитектуре и бизнес-процессах.
➡️ Научитесь работать с системами, передающими и получающими большие объёмы сообщений.
➡️ Подготовитесь к базовым собеседованиям на позиции, связанные с Kafka.

Углубленный курс с практикой на Java, Docker и Postgres.

▶️Занять место — по ссылке 

#реклама
О рекламодателе

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

Senior Java Developer

BeanPostProcessor

BeanPostProcessor — это интерфейс в Spring Framework, который позволяет разработчикам расширять логику создания бинов. BeanPostProcessors вызываются после того, как бин был создан и проинициализирован, но до того, как он будет зарегистрирован в контейнере Spring.

BeanPostProcessors имеют два метода обратного вызова:
postProcessBeforeInitialization(Object bean, String beanName): вызывается перед тем, как будет вызван метод init() бина.
postProcessAfterInitialization(Object bean, String beanName): вызывается после того, как будет вызван метод init() бина.

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

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

Senior Java Developer

Класс Throwable

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

Класс Throwable имеет следующие важные методы:

getMessage() — возвращает строковое сообщение, описывающее исключение.
printStackTrace() — выводит в стандартный поток ошибок подробную информацию об исключении, включая его тип, сообщение и стек вызовов.
Исключения делятся на две категории: ошибки и исключения. Ошибки являются необратимыми ситуациями, которые приводят к завершению работы программы. Исключения же являются обратимыми ситуациями, которые можно обработать и продолжить выполнение программы.

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

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

Senior Java Developer

#вопросы_с_собеседований
Что будет, если в static блоке кода возникнет исключение?

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

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

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

Senior Java Developer

⚔️Ваши микросервисы не дружат между собой?

Сначала один сервис завис, потом второй, а в логах — хаос. Конфиги разбросаны по разным файлам, API ломаются после каждого релиза, а тестировщики смотрят на вас как на главного злодея проекта.

👩‍💻 Есть способ навести порядок. Spring Cloud помогает микросервисам работать как единая система: управлять конфигурациями, находить друг друга без лишних костылей и не падать при каждом обновлении.

🦾Разберём, как это сделать, на открытом уроке «Экосистема Spring Cloud».

Когда: 25 февраля в 20:00 (мск).

Вы узнаете, как использовать Service Discovery, API Gateway и Config Server. А еще получите скидку на большое обучение «Java Developer. Advanced».

Не ждите, пока сервисы начнут воевать друг с другом.

🔗 Регистрируйтесь прямо сейчас: https://otus.pw/ieRt/

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

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

Senior Java Developer

interrupted()

Метод interrupted() является статическим методом класса Thread и проверяет, был ли установлен флаг прерывания у текущего потока. При этом флаг прерывания после вызова этого метода сбрасывается.

В этом примере создается новый поток, который выполняет цикл while, пока флаг прерывания не установлен. Затем главный поток останавливается с помощью sleep(), после чего вызывается метод interrupt() для нового потока, чтобы установить флаг прерывания. Когда флаг прерывания установлен, цикл while завершается и выводится сообщение "Thread has been interrupted".

Количество строк "Thread is running" может отличаться в зависимости от скорости выполнения кода.

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

Senior Java Developer

Что такое «IS-A» отношение?

«IS-A» отношение относится к понятию наследования и полиморфизма в объектно-ориентированном программировании. Оно также называется «является типом» или «является подтипом». Это отношение указывает на то, что один класс является подклассом другого класса.

Наследование позволяет создавать новый класс на основе существующего класса. Подкласс наследует поля и методы суперкласса, что позволяет расширять функциональность и переиспользовать код. «IS-A» отношение означает, что объекты подкласса могут быть рассматриваемыми как объекты суперкласса, так как они наследуют его свойства и методы.

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

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

Senior Java Developer

ScheduledExecutorService

ScheduledExecutorService — это интерфейс в Java из пакета java.util.concurrent, который предоставляет возможность планирования и выполнения задач с задержкой или периодически.

Основные реализации ScheduledExecutorService:

ScheduledThreadPoolExecutor — это конкретная реализация ScheduledExecutorService, предоставляемая в стандартной библиотеке Java. Она является потокобезопасной реализацией и использует пул потоков для выполнения задач.

SingleThreadScheduledExecutor — это реализация ScheduledExecutorService, которая использует только один поток для выполнения задач. Она может быть полезной, если вы хотите, чтобы задачи выполнялись последовательно в заданном порядке.

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

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

Senior Java Developer

Метод isEmpty()

Метод isEmpty() используется для проверки, пуст ли объект типа String. Этот метод возвращает true, если строка не содержит символов, и false в противном случае.

В примере на картинке str1.isEmpty() вернет true, потому что str1 не содержит символов, в то время как str2.isEmpty() вернет false, так как str2 содержит текст.

Учтите, что метод isEmpty() доступен только для объектов типа String в Java. Если вы хотите проверить пустоту другого объекта, вам может потребоваться использовать другие методы или проверки в зависимости от типа объекта.

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

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

Senior Java Developer

Ветвление switch

В Java существует два основных типа ветвлений: if...else и switch. Первый тип проверят некое условие и если оно верно — выполняет код.

В свою очередь switch получает на вход проверяемое значение и сравнивает его с перезаписанными данными. Если какой-то случай case совпадает, то JVM выполняет соответствующий код.

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

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

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

Senior Java Developer

⚡️ Квиз на знание Java

Пройти тестирование — сложно! А ты справишься?
22 вопроса, 30 минут

Проверь себя - пройди квиз и оцени свой уровень навыков, а также свою готовность к обучению на курсе — «Java Developer. Advanced» от Отус.

👩‍💻 На курсе ты научишься профилировать приложения, настраивать GC, работать с реактивными подходами и мониторить метрики в Grafana. Пройдешь весь путь от JVM до Kubernetes, научишься анализировать «горячие точки», оптимизировать приложения и настраивать интеграции с Prometheus.

➡️ ПРОЙТИ ТЕСТ: https://otus.pw/Hevf/

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

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

Senior Java Developer

⚡️👩‍💻 Освой Java с нуля и начни карьеру успешного разработчика!

Мечтаешь вкатиться в IT, но думаешь, что уже поздно? Java — язык, на котором работают крупнейшие компании мира! Тебе точно найдется место.

🦾 Наше обучение на курсе "Java-разработчик" — это 3 ступени, которые проведут тебя от новичка до уверенного Middle-разработчика. Ты освоишь Spring, Hibernate, PostgreSQL, Docker, Kafka, Kubernetes и другие актуальные технологии!

Программа составлена практикующими экспертами, а диплом OTUS востребован в ведущих IT-компаниях. Наш партнер — СберКорус, разработчик передовых цифровых решений!

👉 Оставь заявку и получи скидку на курс: https://otus.pw/qNbW/

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

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

Senior Java Developer

Phaser

Phaser очень похож на более известную CountDownLatch. Однако он предоставляет некоторые дополнительные функции. Он позволяет нам установить динамическое количество потоков, которые должны ждать перед продолжением выполнения.

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

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

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

Senior Java Developer

StringJoiner

StringJoiner — это класс в Java, введенный в Java 8, который предоставляет удобный способ объединения строк с использованием разделителя. Этот класс обеспечивает более гибкий и выразительный способ объединения строк, чем использование обычных конкатенаций строк или метода StringBuilder.

В примере выше создается объект StringJoiner с разделителем ",". Затем добавляются три элемента ("Apple", "Banana", "Orange"). В результате вызова метода toString() получается строка, в которой элементы объединены с использованием заданного разделителя.

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

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

Senior Java Developer

Трюк с битовыми операциями

Этот код демонстрирует обмен значений двух переменных (a и b) без использования дополнительной временной переменной.

Он использует битовую операцию XOR (^). Ключевой момент здесь в том, что XOR двух одинаковых чисел возвращает 0, а XOR числа с 0 возвращает само это число. Таким образом, когда мы применяем XOR к a и b и затем обратно, мы фактически обмениваем их значения.

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

Senior Java Developer

Блокирующий метод

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

Существует несколько способов сделать метод блокирующим. Один из способов — это использовать ключевое слово synchronized. Метод, помеченный ключевым словом synchronized, блокирует объект, на котором он вызывается. Это означает, что ни один другой поток не может вызвать этот метод, пока он не будет завершен.

Метод на картинке блокирует объект, на котором он вызывается, до тех пор, пока он не завершит свою работу.

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

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

Senior Java Developer

⁉️👩‍💻Разрабатываете на Java, но проект на Spring превращается в черный ящик? Бины ведут себя непредсказуемо, конфигурация разрастается, а ошибка в одном модуле рушит всю систему.

Интервью на позицию Middle неудачно — не хватает уверенности в Spring.

🤝 Тем временем рынок требует специалистов, которые не просто знают Spring, а умеют строить продакшен-приложения с его помощью. Компании ищут разработчиков, которые понимают, как работают Spring Boot, Spring Security, Spring MVC и могут строить микросервисную архитектуру.

⚡️ На курсе «Разработчик на Spring Framework» мы закроем пробелы и дадим актуальные навыки. Практика на реальных кейсах, ревью заданий, тестовое собеседование — вы освоите Spring так, чтобы уверенно применять его в работе.

➡️ Пройдите вступительное тестирование и получите скидку на обучение: https://otus.pw/2NMR/

🎫 Курс можно приобрести в рассрочку

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

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

Senior Java Developer

👩‍💻 Создание 2D RPG игры на Java 👩‍💻

На открытом вебинаре вы создадите свою первую 2D RPG на Java с LibGDX, увидите, как код управляет миром игры, и освоите ключевые принципы программирования.

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

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

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

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

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

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

Senior Java Developer

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

Iterator появился в JDK 1.2 и реализует интерфейс Iterable, в то время как Enumeration существовал в более ранних версиях JDK и не реализует Iterable.

— Методы Iterator позволяют удалять элементы во время итерации, в то время как методы Enumeration не предоставляют такой возможности.

Iterator является "fail-fast", то есть выбросит ConcurrentModificationException, если коллекция была изменена, а Enumeration не гарантирует такого поведения.

Iterator поддерживает обобщенные типы, а Enumeration работает только с объектами типа Object.

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

Senior Java Developer

DelayQueue

DelayQueue - это тип очереди, который используется для задержки выполнения определенных операций.

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

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

В этом примере мы добавляем в очередь два сообщения с разными задержками. Первое сообщение выводится через 5 секунд, второе - сразу же.

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

Senior Java Developer

🆕💥 Разработчик, получи актуальные знания о микросервисах!

Умение строить архитектуру микросервисов — навык, необходимый разработчикам и тем, кто хочет стать архитектором ПО. Переходи на сайт, чтобы проверить свои знания и посмотреть подходит ли тебе 💥 обновленная программа курса Microservice Architecture от OTUS?

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

🎫 Курс можно приобрести в рассрочку

👉 Пройти тест и забрать скидку: https://otus.pw/Lkokc/

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

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

Senior Java Developer

👩‍💻 Resilience4j. RateLimiter

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

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

Где мы разберем:

✔️Что такое RateLimiter?
✔️Настройка и особенности.

Урок будет полезен тем, кто хочет:
✔️Защитить приложения от пиковых нагрузок и обеспечить высокую доступность.
✔️Использовать ключевые инструменты Resilience4j для управления трафиком.
✔️Глубже понять, как писать надёжные микросервисы и оптимизировать их под реальные сценарии.

В результате урока вы:
✔️Разберётесь, как работает RateLimiter и в чём его польза при ограничении запросов.
✔️Получите несколько примеров настройки и сможете применять эти приёмы в базовых сценариях.

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

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

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

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

Senior Java Developer

А всё, а раньше надо было!

Именно это скажут вам потерянные данные, когда из Кафки они превратятся в кашку. Лучше разбираться в инструменте до того, как начнёшь с ним работать по-серьёзному — не только в теории, но и на практике.

Пока все данные на месте, приходите на «Apache Kafka для разработчиков»:

➡️ Разберётесь в основах Kafka, её архитектуре и бизнес-процессах.
➡️ Научитесь работать с системами, передающими и получающими большие объёмы сообщений.
➡️ Подготовитесь к базовым собеседованиям на позиции, связанные с Kafka.

Углубленный курс с практикой на Java, Docker и Postgres.

▶️Занять место — по ссылке 

#реклама
О рекламодателе

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