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

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

Сначала один сервис завис, потом второй, а в логах — хаос. Конфиги разбросаны по разным файлам, 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

Декартово произведение

Декартово произведение (cartesian product) в математике означает комбинацию всех возможных пар элементов из двух множеств. В Java это понятие может использоваться для описания ситуации, когда необходимо создать все возможные комбинации элементов из двух или более наборов данных.

Например, представьте, что у вас есть два множества: A = {1, 2} и B = {a, b}. Декартово произведение этих множеств будет: {(1, a), (1, b), (2, a), (2, b)}.

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

Для решения проблемы декартова произведения можно использовать вложенные циклы, рекурсию или специализированные библиотеки, такие как Apache Commons Collections или Stream API, чтобы более эффективно генерировать и обрабатывать комбинации элементов из разных множеств.

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

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

Senior Java Developer

Как делать веб приложения на Spring Boot

Первая понятная инструкция от опытного Java Разработчика из BigTech в Европе. Научитесь за 0 рублей и всего за 3 дня создавать собственные веб приложения.

Если вы планируете стать востребованным разработчиком в кратчайшие сроки, то приходите на интенсив от FAANG School, где за 72 часа:

– погрузитесь в базовые концепции Spring. Что такое бины, как работает ApplicationContext
– какие типичные ошибки делают 80% новичков с этим фреймворком
– разберетесь с ключевыми аннотациями и поймете, как создавать проекты для портфолио, которые способны выдерживать высокие нагрузки
– вместе с senior-разработчиком в прямом эфире создадите рабочее мини приложение и закрепите навыки на практике

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

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

Senior Java Developer

Переопределение метода

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

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

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

Senior Java Developer

Как написать собственное исключение?

Для создания собственного исключения нужно создать новый класс, который наследуется от класса Exception или RuntimeException.

В этом примере мы создаем класс CustomException, который наследуется от класса Exception.

Далее, мы используем пользовательское исключение в методе myMethod() класса MyClass. Если выполняется определенное условие, мы выбрасываем исключение CustomException с сообщением об ошибке.

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

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

Senior Java Developer

Маршалинг

Маршалинг (marshaling) — это процесс преобразования объектов в другой формат, который может быть использован для передачи данных через сеть, сохранения на диске или для других целей. Он также известен как сериализация. Обратным процессом является демаршалинг (unmarshaling или десериализация), который восстанавливает объекты из сериализованных данных.

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

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

Senior Java Developer

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

📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе «Java Developer. Professional» от OTUS.
Сможете сдать - пройдете на курс по спеццене!

💻 В программе курса — все актуальные инструменты, необходимые Middle+ разработчику на Java. Возможна рассрочка.

Секретный промокод для скидки на обучение в 5% - Javapro-02

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

👉ПРОЙТИ ТЕСТ

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

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

Senior Java Developer

Что такое «thread-safe»?

«Thread-safe» (безопасность в многопоточной среде) означает, что определенный код или объект может корректно и безопасно использоваться в многопоточной среде, где несколько потоков одновременно могут обращаться к этому коду или объекту.

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

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

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

Senior Java Developer

Array или ArrayList?

Выбор между Array и ArrayList зависит от специфики задачи Java, которую вы хотите решить. Запомните следующие особенности этих типов:

— Массив имеет фиксированный размер, и память для него выделяется во время объявления, а размер ArrayList может динамически меняться.

— Массивы Java работают намного быстрее, а в ArrayList намного проще добавлять и удалять элементы.

— При работе с Array скорее всего возникнет ошибка ArrayIndexOutOfBoundsException.

— ArrayList может быть только одномерным, когда массивы Java могут быть многомерными.

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

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

Senior Java Developer

🔒 1219 ГБ платного контента для JAVA программистов выложили БЕСПЛАТНО

Получите доступ к библиотеке знаний от FAANG School только в течение 24 часов:

– Пошаговая RoadMap по Java
– Redis - 5 улучшений для твоего пет-проекта
– Мануал по Docker. Основные команды и концепции
– Микросервисы. Вопросы с собеседований
– Шпаргалка с горячими клавишами JetBrains IDE. Ускоришь работу в 10 раз
– Desk setup. Подборка аксессуаров для комфортной работы
– Шпаргалка по Kafka
– Шпаргалка по Spring с разбором паттерна Наблюдатель
– Инструкция по работе с Git
– Подробный гайд, как найти работу в IT без опыта
– Подборка платформ с вакансиями для java-разработчиков
- Шпаргалка по основным командам SQL

Свежее пополнение - гайд «Топ пет-проектов с AI». Сборник идей, который поможет создать пет-проект не только для портфолио, но и для пассивного дохода 🫢

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

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

Senior Java Developer

Менеджеры компоновки

Менеджеры компоновки (Layout Manager) в Java используются для управления размещением компонентов в контейнерах, таких как JFrame, JPanel, или другие контейнеры Swing. Они обеспечивают автоматическое распределение компонентов в контейнере в соответствии с определенными правилами размещения.

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

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

Senior Java Developer

Что такое JIT компиляция?

JIT (Just-In-Time) компиляция — это техника оптимизации кода, которая используется для улучшения производительности приложений. Когда Java-программа запускается, она сначала компилируется в промежуточный байт-код (bytecode), который является платформонезависимым представлением кода. Затем этот байт-код выполняется виртуальной машиной Java (JVM).

JIT-компиляция происходит во время выполнения программы. Когда JVM выполняет байт-код, она анализирует и оптимизирует его на лету, переводя его в нативный машинный код, который может выполняться более эффективно на конкретной аппаратной платформе. Это позволяет улучшить производительность приложений, так как оптимизации выполняются с учетом конкретных характеристик и возможностей аппаратного оборудования, на котором работает JVM.

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

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

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.

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

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

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

Senior Java Developer

Конкатенация

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

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

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

Senior Java Developer

Приоритеты потоков

Приоритеты потоков используются для определения того, как операционная система должна разделять вычислительные ресурсы между потоками. Приоритеты потоков представлены целыми числами от 1 до 10, где 1 — минимальный приоритет, а 10 — максимальный приоритет. По умолчанию все потоки имеют нормальный приоритет (5).

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

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

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

Senior Java Developer

serialVersionUID

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

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

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

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

Senior Java Developer

🤖 Пройди тест по Rust и проверь свои знания, готов ли ты к обучению на курсе.

Ответишь — пройдешь на курс "Rust Developer. Professional" от OTUS по специальной цене + получишь доступ к записям открытых уроков курса

За 5 месяцев обучения ты разберёшь ключевые особенности Rust и сможешь не только разрабатывать сложные программные продукты, но и в целом лучше проектировать ПО.

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

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

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

Senior Java Developer

final static переменные

final static переменные
— это константы класса. Они имеют следующие особенности:

- Объявляются с модификаторами final и static, то есть являются финальными (немодифицируемыми) и принадлежат классу, а не объекту.
- Инициализируются при загрузке класса и имеют одно значение для всех объектов данного класса.
- Хранятся в памяти в одном экземпляре, что экономит память.
- Доступ к ним осуществляется через имя класса, а не объекта.

Подытожив, final static переменные используются для объявления констант, значения которых известны во время компиляции и не меняются в runtime. Это позволяет оптимизировать код и данные.

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

Senior Java Developer

ThreadPool

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

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

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

Senior Java Developer

ThreadPoolExecutor

ThreadPoolExecutor — это класс в Java, который предоставляет управление пулами потоков для выполнения асинхронных задач. Он является частью пакета java.util.concurrent, который предоставляет различные средства для работы с параллельными и асинхронными задачами.

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

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

Senior Java Developer

FixedThemeResolver

FixedThemeResolver — это класс из пакета Spring Framework, который используется для установки фиксированной темы (или стиля) для веб-приложения. Тема определяет внешний вид компонентов пользовательского интерфейса, таких как цвета, шрифты, изображения и т. д.

Когда вы создаете веб-приложение с использованием Spring Framework, вы можете хотеть дать пользователю возможность выбора темы или стиля. FixedThemeResolver предоставляет простой способ жестко задать тему в коде и применить ее ко всем страницам вашего веб-приложения.

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

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

Senior Java Developer

Метод doPost()

Метод doPost() является одним из методов, используемых для обработки HTTP запросов в Java сервлетах. Сервлеты представляют собой Java классы, которые выполняют обработку HTTP запросов и генерацию HTTP ответов. doPost() используется для обработки HTTP POST запросов от клиентов.

Чтобы связать этот сервлет с определенным URL, вы должны настроить маппинг в файле web.xml вашего веб-приложения или с использованием аннотаций (если ваша версия сервлетов поддерживает аннотации).

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

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

Senior Java Developer

👩‍💻Ваши приложения готовы к перегрузкам? А если вдруг лавина запросов?

На открытом вебинаре «Resilience4j. Bulkhead» вы узнаете, как защитить свои сервисы от сбоев. Разберём ключевые возможности Bulkhead и покажем, как ограничение ресурсов может спасти приложение.

Хотите углубить навыки бэкенд-разработки, повысить устойчивость своих микросервисов и освоить Resilience4j?

🗓 Всё это уже 12 февраля в 20:00 мск!

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

➡️ Регистрируйтесь на открытый урок прямо сейчас! Участники получат скидку на большое обучение на курс «Java Developer. Professional»: https://otus.pw/vBLx/

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

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

Senior Java Developer

Перегрузка метода

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

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

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

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