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 🚀
В отличие от
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html
@javatg
java.util.IdentityHashMap
В отличие от
HashMap
, этот класс использует равенство ссылок (==), а не равенство объектов (equals()) для определения уникальности ключей, что делает его подходящим для конкретных случаев использования. 🔥https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/IdentityHashMap.html
@javatg
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 автоматизирует этот процесс, определяя и освобождая память, которая больше не используется, и тем самым обеспечивая ее эффективное использование.
📌 Читать
@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
Почитать:
— Быстрый старт. 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
Поговорим о различиях между RecyclerView и ListView — виджетами, предназначенными для отображения данных в Android-разработке.
Рассмотрим ключевые особенности RecyclerView и ListView, плюсы и минусы, а также случаи использования каждого виджета.
Для начала выясним, что такое представление (обозначаемое корнем “View” в названии каждого виджета).
Что такое представление?
В Android Studio доступны различные типы представлений для разработки Android-приложений: ImageView, TextView, ListView и т. д. Эти типы представлений помогают сделать удобным пользовательский интерфейс. Представление можно перетащить в раздел XML-дизайна или просто написать код в разделе XML-кода.
Прежде чем перейти к обсуждению различий между ListView и RecyclerView, разберемся в том, что такое ListView и RecyclerView?
ListView — это один из типов представлений, который показывает данные в формате с вертикальной прокруткой. Он повышает удобство работы пользователя, поскольку делает список легко доступным для понимания.
RecyclerView — виджет, наделенный дополнительными компонентами: Adapter соединяет между собой данные, которые нужно поместить в список, а LayoutManager (менеджер макетов) отвечает за правильное расположение данных/элементов списка на экране. Различают 3 типа LayoutManager.
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Выпуск archunit-spring v0.2.0
GitHub: https://github.com/rweisleder/archunit-spring/releases/tag/v0.2.0
#ArchUnit #Spring #SpringBoot
@javatg
ArchUnit Spring Integration
теперь предоставляет правила для проверки структуры приложений Spring Boot
и зависимостей между компонентами Spring.GitHub: https://github.com/rweisleder/archunit-spring/releases/tag/v0.2.0
#ArchUnit #Spring #SpringBoot
@javatg
🚀 Советы по Spring 🚀
Асинхронная обработка с помощью
Изучите использование
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html
#SpringTip
@javatg
Асинхронная обработка с помощью
DeferredResult
Изучите использование
DeferredResult
и CompletionStage
для более тонкого контроля над асинхронной обработкой. 🔥https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html
#SpringTip
#Java @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
Синхронизация в Java - ReentrantLock
Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java.
Для достижения более тонкого контроля и продвинутых механизмов блокировки.
Объект класса ReentrantLock решает те же задачи, что и блок synchronized. Поток висит на вызове метода lock() в ожидании своей очереди занять этот объект. Владеть локом, как и находиться внутри блока synchronized может только один поток одновременно. unlock(), подобно выходу из блока синхронизации, освобождает объект-монитор для других потоков.
В отличие от блока синхронизации, ReentrantLock дает расширенный интерфейс для получения информации о состоянии блокировки. Методы лока позволяют еще до блокировки узнать, занят ли он сейчас, сколько потоков ждут его в очереди, сколько раз подряд текущий поток завладел им.
Шире и возможные режимы блокировки. Кроме обычного ожидающего lock(), вариант tryLock() с параметром ожидает своей очереди только заданное время, а без параметра – вообще не ждет, а только захватывает свободный лок.
Еще одно отличие – свойство fair. Лок с этим свойством обеспечивает «справедливость» очереди: пришедший раньше поток захватывает объект раньше. Блок synchronized не дает никаких гарантий порядка.
📎 Документация
@javatg
🚀 Лучшие практики Spring Boot Docker
https://mydeveloperplanet.com/2022/12/14/spring-boot-docker-best-practices/
@javatg
https://mydeveloperplanet.com/2022/12/14/spring-boot-docker-best-practices/
@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
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Часть 1: Реализация API Get Collection
Часть 2: Реализация API Create и Update
Часть 3: Реалищация FindById и DeleteById API
Часть 4: Обработка исключений в REST API
@javatg
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
WireMock Spring Boot значительно упрощает тестирование HTTP-клиентов в интеграционных тестах на основе Spring Boot и Junit 5.
https://github.com/maciejwalkowiak/wiremock-spring-boot
@javatg
Задействуйте все свои (виртуальные) потоки, обратитесь к SIMD, оптимизируйте GC или используйте любой другой трюк, и создайте самую быструю реализацию для решения этой задачи!
📌 Реализация на .NET
▪ Github
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM