👉👉 Перемещение указателя на смещение в Kafka
В статье описывается задача, в которой необходимо слушать сообщения с определенного смещения(offset) в Kafka. Для решения данной задачи потребуется интерфейс ConsumerSeekAware и найти позицию с которой нужно начать слушание. Так же необходимо будет создать механизм перезапуска слушателя сообщений Kafka. В примерах кода используются Java и Spring фреймворк.
Читать статью
#туториал
В статье описывается задача, в которой необходимо слушать сообщения с определенного смещения(offset) в Kafka. Для решения данной задачи потребуется интерфейс ConsumerSeekAware и найти позицию с которой нужно начать слушание. Так же необходимо будет создать механизм перезапуска слушателя сообщений Kafka. В примерах кода используются Java и Spring фреймворк.
Читать статью
#туториал
Декартово произведение
Декартово произведение (cartesian product) в математике означает комбинацию всех возможных пар элементов из двух множеств. В Java это понятие может использоваться для описания ситуации, когда необходимо создать все возможные комбинации элементов из двух или более наборов данных.
Например, представьте, что у вас есть два множества: A = {1, 2} и B = {a, b}. Декартово произведение этих множеств будет: {(1, a), (1, b), (2, a), (2, b)}.
Проблема декартова произведения может возникнуть, когда вам нужно сгенерировать или обработать все возможные комбинации элементов из двух или более коллекций.
Для решения проблемы декартова произведения можно использовать вложенные циклы, рекурсию или специализированные библиотеки, такие как Apache Commons Collections или Stream API, чтобы более эффективно генерировать и обрабатывать комбинации элементов из разных множеств.
Декартово произведение (cartesian product) в математике означает комбинацию всех возможных пар элементов из двух множеств. В Java это понятие может использоваться для описания ситуации, когда необходимо создать все возможные комбинации элементов из двух или более наборов данных.
Например, представьте, что у вас есть два множества: A = {1, 2} и B = {a, b}. Декартово произведение этих множеств будет: {(1, a), (1, b), (2, a), (2, b)}.
Проблема декартова произведения может возникнуть, когда вам нужно сгенерировать или обработать все возможные комбинации элементов из двух или более коллекций.
Для решения проблемы декартова произведения можно использовать вложенные циклы, рекурсию или специализированные библиотеки, такие как Apache Commons Collections или Stream API, чтобы более эффективно генерировать и обрабатывать комбинации элементов из разных множеств.
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Worker Thread
Worker Thread (рабочий поток) — это обычный поток, который выполняет задачи в фоновом режиме, отдельно от главного потока приложения.
Использование Worker Thread:
— Worker Threadы отлично подходят для выполнения длительных задач, которые не должны блокировать главный поток.
— Отделение длительных задач от главного потока позволяет сохранить отзывчивость интерфейса пользователя.
— Распределение задач между несколькими Worker Threadами может повысить производительность приложения, особенно на многоядерных процессорах.
Worker Thread (рабочий поток) — это обычный поток, который выполняет задачи в фоновом режиме, отдельно от главного потока приложения.
Использование Worker Thread:
— Worker Threadы отлично подходят для выполнения длительных задач, которые не должны блокировать главный поток.
— Отделение длительных задач от главного потока позволяет сохранить отзывчивость интерфейса пользователя.
— Распределение задач между несколькими Worker Threadами может повысить производительность приложения, особенно на многоядерных процессорах.
🦾🧠🏋️Качаем мозги к лету!
Курс «Алгоритмы и структуры данных» для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.
➡️ Алгоритмы и структуры данных35 990 ₽ 21 594 ₽
⭐️ Переходите и активируйте бесплатные вводные занятия курса — https://proglib.io/w/da6727d1
Вас ждут:
– 150 практических заданий и 47 видеолекций
– бессрочный доступ к обучению
– поддержка преподавателя в чате
А также очень харизматичный спикер из Яндекса 🙌🏻
Курс «Алгоритмы и структуры данных» для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.
➡️ Алгоритмы и структуры данных
⭐️ Переходите и активируйте бесплатные вводные занятия курса — https://proglib.io/w/da6727d1
Вас ждут:
– 150 практических заданий и 47 видеолекций
– бессрочный доступ к обучению
– поддержка преподавателя в чате
А также очень харизматичный спикер из Яндекса 🙌🏻
Очередной #дайджест для джависта
➕ Kafka Visualization Showcase — пошаговое объяснение, как моделировать поток данных в реплицированных разделах Kafka
➕ Byte Pack — либа для сериализации-десериализации case class в IArray[Byte]
➕ Spring Modulith 1.2 M3 — релиз принес поддержку открытых модулей, также добавили возможность использовать аннотации уровня конфигураций
➕ Gradle Release Notes — поддержка Java 22 и еще несколько новостей
➕ Как начать писать на Java в VSCode — подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Тогда зачем пробовать что‑то другое?
➕ Kafka Visualization Showcase — пошаговое объяснение, как моделировать поток данных в реплицированных разделах Kafka
➕ Byte Pack — либа для сериализации-десериализации case class в IArray[Byte]
➕ Spring Modulith 1.2 M3 — релиз принес поддержку открытых модулей, также добавили возможность использовать аннотации уровня конфигураций
➕ Gradle Release Notes — поддержка Java 22 и еще несколько новостей
➕ Как начать писать на Java в VSCode — подавляющее большинство пишет Java код, используя JetBrains IntelliJ IDEA Ultimate. Тогда зачем пробовать что‑то другое?
Что такое «IS-A» отношение?
Такое отношение относится к понятию наследования и полиморфизма в ООП. Оно также называется «является типом» или «является подтипом». Это отношение указывает на то, что один класс является подклассом другого класса.
Наследование позволяет создавать новый класс на основе существующего класса. Подкласс наследует поля и методы суперкласса, что позволяет расширять функциональность и переиспользовать код. «IS-A» отношение означает, что объекты подкласса могут быть рассматриваемыми как объекты суперкласса, так как они наследуют его свойства и методы.
Такое отношение относится к понятию наследования и полиморфизма в ООП. Оно также называется «является типом» или «является подтипом». Это отношение указывает на то, что один класс является подклассом другого класса.
Наследование позволяет создавать новый класс на основе существующего класса. Подкласс наследует поля и методы суперкласса, что позволяет расширять функциональность и переиспользовать код. «IS-A» отношение означает, что объекты подкласса могут быть рассматриваемыми как объекты суперкласса, так как они наследуют его свойства и методы.
Forwarded from Библиотека задач по Java | тесты, код, задания
Forwarded from Библиотека задач по Java | тесты, код, задания
Зачем нужен модификатор abstract?
Модификатор abstract применяется для создания абстрактных классов и методов. Абстрактный класс является шаблоном для других классов и не может быть инстанциирован сам по себе. Он предоставляет общие черты для всех своих подклассов, которые могут быть как абстрактными, так и конкретными классами.
Абстрактный метод, который помечен ключевым словом abstract, не имеет реализации в абстрактном классе. Если в классе есть хотя бы один абстрактный метод, то весь класс должен быть объявлен как абстрактный.
Использование абстрактных классов и методов позволяет определить общий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
Модификатор abstract применяется для создания абстрактных классов и методов. Абстрактный класс является шаблоном для других классов и не может быть инстанциирован сам по себе. Он предоставляет общие черты для всех своих подклассов, которые могут быть как абстрактными, так и конкретными классами.
Абстрактный метод, который помечен ключевым словом abstract, не имеет реализации в абстрактном классе. Если в классе есть хотя бы один абстрактный метод, то весь класс должен быть объявлен как абстрактный.
Использование абстрактных классов и методов позволяет определить общий шаблон объекта, который должен быть реализован в других классах. В них же самих описывается лишь некое общее для всех потомков поведение.
😓😓 Перевод Spring Boot приложения с HTTP на HTTPS без ругани браузера
Данная статья расчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении. В этой статье работаем именно со Spring Boot и вшитым в него Apache Tomcat.
Статья игнорирует всевозможные правила безопасности Linux и призвана показать как достичь элементарной работы с HTTPS в Spring Boot, не сильно углубляясь в смежные темы.
Читать статью
#туториал
Данная статья расчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении. В этой статье работаем именно со Spring Boot и вшитым в него Apache Tomcat.
Статья игнорирует всевозможные правила безопасности Linux и призвана показать как достичь элементарной работы с HTTPS в Spring Boot, не сильно углубляясь в смежные темы.
Читать статью
#туториал
Forwarded from Библиотека собеса по Java | вопросы с собеседований
Метод setUp()
Метод setUp() (или before(), в предыдущих версиях JUnit) используется для настройки начальных условий перед выполнением каждого тестового метода. Этот метод выполняется перед каждым тестовым методом, который помечен аннотацией @Test. Это позволяет вам подготовить общие данные, создать объекты и настроить другие условия перед тестированием.
Метод setUp() (или before(), в предыдущих версиях JUnit) используется для настройки начальных условий перед выполнением каждого тестового метода. Этот метод выполняется перед каждым тестовым методом, который помечен аннотацией @Test. Это позволяет вам подготовить общие данные, создать объекты и настроить другие условия перед тестированием.
Свежий #дайджест для джависта
🛟 New SIP — улучшение синтаксиса границ контекста и заданных значений
🛟 JEP 447: Statements before super(...) — позволяет добавлять инструкции перед вызовом super в конструкторах. Это дает разработчикам возможность добавлять проверку или другую обработку переменных перед вызовом родительского конструктора
🛟 Ориентированные на производительность Spring Data JPA и Hibernate — затрагивается проблема производительности наших любимых JPA & Hibernate
🛟 The Functional Programming in Scala — Jetbrains добавили курс по Scala. Крутая тема для новичков — курсы, интегрированные в среду разработки
🛟 Что нового в Testcontainers в Spring Boot 3.2.0 — ServiceConnection теперь может работать с контейнерами Oracle Database Free, OpenTelemetry Collector и добавили специальное свойство spring.testcontainers.beans.startup
🛟 New SIP — улучшение синтаксиса границ контекста и заданных значений
🛟 JEP 447: Statements before super(...) — позволяет добавлять инструкции перед вызовом super в конструкторах. Это дает разработчикам возможность добавлять проверку или другую обработку переменных перед вызовом родительского конструктора
🛟 Ориентированные на производительность Spring Data JPA и Hibernate — затрагивается проблема производительности наших любимых JPA & Hibernate
🛟 The Functional Programming in Scala — Jetbrains добавили курс по Scala. Крутая тема для новичков — курсы, интегрированные в среду разработки
🛟 Что нового в Testcontainers в Spring Boot 3.2.0 — ServiceConnection теперь может работать с контейнерами Oracle Database Free, OpenTelemetry Collector и добавили специальное свойство spring.testcontainers.beans.startup
Forwarded from Библиотека задач по Java | тесты, код, задания
Что выведет код?
Anonymous Quiz
26%
0-0 0-1 1-0 1-1 2-0 2-1
16%
0-0 0-1 0-2 1-0 1-1 1-2 2-0 2-1 2-2
48%
Бесконечный вывод 0-0 0-1
9%
0-0 0-1
Forwarded from Библиотека задач по Java | тесты, код, задания
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🤔🤔 Безработные айосники, мертвый PHP и бесполезные «саперы»: топ-5 мифов о будущем российского IT
Разбор прогнозов и обещаний, которые всколыхнули рынок, но показались нам нереалистичными.
👉 Спрос на iOS-программистов продолжит падать (как и зарплаты)
👉 Ruby-специалисты не нужны рынку
👉 Зарплаты PHP-разработчиков упадут, потому что язык умирает
👉 «Сапёры» скоро потеряют работу
👉 Kotlin-программисты заменят Java-специалистов
А вы что думаете?
Читать статью
#почитать
Разбор прогнозов и обещаний, которые всколыхнули рынок, но показались нам нереалистичными.
👉 Спрос на iOS-программистов продолжит падать (как и зарплаты)
👉 Ruby-специалисты не нужны рынку
👉 Зарплаты PHP-разработчиков упадут, потому что язык умирает
👉 «Сапёры» скоро потеряют работу
👉 Kotlin-программисты заменят Java-специалистов
А вы что думаете?
Читать статью
#почитать
В подкасте Владимир Бухтояров поделится мнением о библиотеке Bucket4J, распределенном рейт лимитере и опен сорсе
00:00:00 Начало
00:01:34 О себе
00:14:12 АПИ для биллинга и платформа
00:24:06 Golden Gate и обновление кэша
00:29:08 Подписки и переезд на Кассандру
00:33:00 Железные ноды Кассандры
00:35:20 История Bucket4j
00:40:46 Алгоритмы рейт лимитинга — Токен Бакет
01:01:42 Претензии к Токен Бакет алгоритму
01:09:04 Лики бакет алгоритм
01:28:04 Маппинг бакета на ключ
01:45:14 Опенсорс — сложно?
01:50:54 Не используйте распределенные рейт-лимитеры
01:56:26 Рейт лимитинг vs Биллинг
01:58:38 Предыдущее непопулярное мнение
02:02:30 Непопулярное мнение
02:09:00 Непопулярное мнение 2
Слушать подкаст в Apple | Spotify | Yandex
#подкаст
00:00:00 Начало
00:01:34 О себе
00:14:12 АПИ для биллинга и платформа
00:24:06 Golden Gate и обновление кэша
00:29:08 Подписки и переезд на Кассандру
00:33:00 Железные ноды Кассандры
00:35:20 История Bucket4j
00:40:46 Алгоритмы рейт лимитинга — Токен Бакет
01:01:42 Претензии к Токен Бакет алгоритму
01:09:04 Лики бакет алгоритм
01:28:04 Маппинг бакета на ключ
01:45:14 Опенсорс — сложно?
01:50:54 Не используйте распределенные рейт-лимитеры
01:56:26 Рейт лимитинг vs Биллинг
01:58:38 Предыдущее непопулярное мнение
02:02:30 Непопулярное мнение
02:09:00 Непопулярное мнение 2
Слушать подкаст в Apple | Spotify | Yandex
#подкаст