Telegram Web Link
🚀 Совет по Spring 🚀

Обработка длительных процессов с помощью @Scheduled в Spring. 🔥

@javatg
🖥 conductor-oss/conductor

Conductor - это платформа, изначально созданная в Netflix для оркестровки микросервисов и событий, написанный на Java.

Conductor OSS поддерживается командой разработчиков в Orkes вместе с членами сообщества с открытым исходным кодом.

git remote set-url origin https://github.com/conductor-oss/conductor

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Совет по API Java 🚀

java.util.IdentityHashMap

В отличие от HashMap, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥

https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html

@javatg
🖥Если вы пропустили, Spring Boot 3.2.1 и 3.1.7 были выпущены сегодня.

https://spring.io/blog/2023/12/21/spring-boot-3-2-1-available-now/

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Основные принципы сборки мусора в Java

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

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

Сборщик мусора в Java автоматизирует этот процесс, определяя и освобождая память, которая больше не используется, и тем самым обеспечивая ее эффективное использование.

📌 Читать

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
💡Задача: Сумма вдоль столбцов

Условие: дается квадратная матрица, необходимо вычислить минимальную сумму вдоль столбца.

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

Пример:

Ввод:
matrix = [[2,1,3],[6,5,4],[7,8,9]]
Вывод: 13
Объяснение: *во вложении

Решение

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Java за неделю

Почитать:
Быстрый старт. SpringBoot + RabbitMQ
Контейнеризация справочников НСИ
Разносим по полочкам этапы тестирования http запросов в Spring
— Полный отчет Github за 2023 о состоянии проектов.
9 вопросов для собеседования по SQL в Apple
Работаем с enum в kotlin/jvm правильно
Идемпотентность: больше, чем кажется
Проектирование БД рекомендательной системы по подходу DB-first
FizzBuzz for Senior
Stone. Квалификаторы и идентификаторы
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
Простой сервис аутентификации. SpringBootSecurity
Gemini Function Calling
Quarkus : Greener, Better, Faster, Stronger
Bubble Sorting in Java - Detailed Explanation
#30days50question
Riding the Wave: A Fun Dive into the World of Streaming Applications
What's trending in Flutter
Who chooses programming in Java? 🤔💻
Mockando LocalDateTime.now()
GraphQL Java Data Loader
From Java2D to a custom game engine, the past present, and future

Посмотреть:
🌐 Upgrading to Java 21? You'll want avoid these features. ( 02:36)
🌐 Java Highlights of 2023 ( 12:51)
🌐 What is the no-arg empty constructor? - Cracking the Java Coding Interview #codinginterview #java ( 01:00)
🌐 What are the four fundamental functional interfaces in Java? - Cracking the Java Coding Interview ( 01:00)
🌐 Это должен сделать каждый программист — Егор Малькевич ( 00:50)

Хорошего дня!

@javatg
📱В чем разница между ListView и RecyclerView?

Поговорим о различиях между RecyclerView и ListView — виджетами, предназначенными для отображения данных в Android-разработке.

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

Для начала выясним, что такое представление (обозначаемое корнем “View” в названии каждого виджета).

Что такое представление?

В Android Studio доступны различные типы представлений для разработки Android-приложений: ImageView, TextView, ListView и т. д. Эти типы представлений помогают сделать удобным пользовательский интерфейс. Представление можно перетащить в раздел XML-дизайна или просто написать код в разделе XML-кода.

Прежде чем перейти к обсуждению различий между ListView и RecyclerView, разберемся в том, что такое ListView и RecyclerView?

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

RecyclerView — виджет, наделенный дополнительными компонентами: Adapter соединяет между собой данные, которые нужно поместить в список, а LayoutManager (менеджер макетов) отвечает за правильное расположение данных/элементов списка на экране. Различают 3 типа LayoutManager.

🟡 LinearLayoutManager:

📌 Продолжение

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Выпуск archunit-spring v0.2.0

ArchUnit Spring Integration теперь предоставляет правила для проверки структуры приложений Spring Boot и зависимостей между компонентами Spring.

GitHub: https://github.com/rweisleder/archunit-spring/releases/tag/v0.2.0

#ArchUnit #Spring #SpringBoot

@javatg
🛠️ therapi-runtime-javadoc - небольшая библиотека, позволяющая читать Javadoc из Java-кода во время выполнения.

Github

@javatg
🚀 Советы по Spring 🚀

Асинхронная обработка с помощью DeferredResult

Изучите использование DeferredResult и CompletionStage для более тонкого контроля над асинхронной обработкой. 🔥

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html

#SpringTip #Java

@javatg
⚡️ Когда я гуглю гайды SpringSecurity в интернете.

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Советы по Java API 🚀

Синхронизация в Java - ReentrantLock

Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java.

Для достижения более тонкого контроля и продвинутых механизмов блокировки.

Объект класса ReentrantLock решает те же задачи, что и блок synchronized. Поток висит на вызове метода lock() в ожидании своей очереди занять этот объект. Владеть локом, как и находиться внутри блока synchronized может только один поток одновременно. unlock(), подобно выходу из блока синхронизации, освобождает объект-монитор для других потоков.

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

Шире и возможные режимы блокировки. Кроме обычного ожидающего lock(), вариант tryLock() с параметром ожидает своей очереди только заданное время, а без параметра – вообще не ждет, а только захватывает свободный лок.

Еще одно отличие – свойство fair. Лок с этим свойством обеспечивает «справедливость» очереди: пришедший раньше поток захватывает объект раньше. Блок synchronized не дает никаких гарантий порядка.

📎 Документация

@javatg
⚡️ Алгоритмы

1. Алгоритмы: пузырьковая сортировка на Java
2. Алгоритмы: проверка вложенных скобок на Java
3. Алгоритмы: поиск простых чисел на Java
4. Алгоритмы: бинарный поиск на отсортированном массиве (реализация на Java)
5. Алгоритмы: поиск простых чисел с помощью "решета Эратосфена"
6. Алгоритмы: проверка слов и предложений на палиндром
7. Алгоритм определения анаграмм
8. Алгоритм инвертирования массива на Java
9. Разбор и вычисление арифметических выражений на Java

#video #algorithm #java

https://www.youtube.com/watch?v=P17lCwXm7KE&list=PL95YVJ6LZEP2GHxoZJ6gdbD8JAHw6mABY

@javatg
Получение одного события разными группами получателей в Kafka с Spring Boot

Инструментарий
🟡Spring Boot (2.7.5)
🟡Apache Kafka
🟡Zookeeper
🟡Docker

Архитектура : рис. 2.

Зависимости
Версия Spring: 2.7.5
Версия Java: 11
<dependencies>

📌 Далее

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📢 Только что вышел WireMock Spring Boot 2.1.0!

WireMock Spring Boot значительно упрощает тестирование HTTP-клиентов в интеграционных тестах на основе Spring Boot и Junit 5.

https://github.com/maciejwalkowiak/wiremock-spring-boot

@javatg
🖥 One Billion Row Challenge (1BRC) - это забавное исследование того, насколько далеко можно зайти в современной Java для агрегирования миллиарда строк из текстового файла.

Задействуйте все свои (виртуальные) потоки, обратитесь к SIMD, оптимизируйте GC или используйте любой другой трюк, и создайте самую быструю реализацию для решения этой задачи!


📌 Реализация на .NET

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/10/02 08:17:52
Back to Top
HTML Embed Code: