При использовании
Integer.valueOf(int)
помните, что значения между -128 и 127 кэшируются для повышения производительности. За пределами этого диапазона создаются новые объекты.
Размер кэша можно контролировать с помощью параметра
-XX:AutoBoxCacheMax=<size>.
🔥#Java #Производительность
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира Java за неделю
Почитать:
— Немного о гигиене Java кода
— Польза создания однородных задач для параллельного вычисления
— Безопасность web приложений с использованием Identity Provider
— Java Digest #7
— 8 бесплатных курсов по большим языковым моделям
— Современные варианты баз данных
— Деплой приложения на Java. Хостим проект через push в Git
— QIWI Server Party 9.0 — 14 декабря, офлайн и онлайн
— Как распараллелить тесты с базой данных
— Хроники пикирующего бота или как важно не пропускать стадию QA в проектах
— Генерация контрактов OpenApi или прикладной API first: совсем немного про зачем
— Компоновка аннотаций в Spring
— Dominando la Programación Orientada a Objetos
— Try to add new feature to a Java Spring boot project
— Few words about Java code hygiene
— RabbitMQ Retry Strategy: Delay with Maximum Retry Threshold
— Mi experiencia con GraalVM y Spring Boot
— Records and data transfer
— Comparing Java and JavaScript
— Day when Skynet becomes self-aware, and 69 reasons to chill out with colleagues. Part 1.
— How Gradle disagreed with our Maven project
— What is Amortized Time Complexity Analysis
Посмотреть:
🌐 Ollama — модель уровня GPT. Используй GPT без ограничений и абсолютно бесплатно.
🌐 Another VS Code Extension For Java ? (⏱ 07:38)
🌐 Java 22 Unpacking - Inside Java Newscast #59 (⏱ 12:23)
🌐 What is multiple inheritance? - Cracking the Java Coding Interview (⏱ 00:59)
🌐 What is the first thing a consructor is doing? - Cracking the Java Coding Interview #java (⏱ 01:00)
🌐 Getting Started with Generational ZGC (⏱ 12:49)
🌐 Looking up Default Locale in Java 21 (⏱ 02:01)
🌐 Аналитики больше технари, чем программисты? Чья работа сложнее? (⏱ 01:06:26)
🌐 Сильная мотивация для джунов в IT — Евгений Кот (⏱ 00:38)
🌐 Когда нужно искать первую работу в IT — Андрей Смирнов (⏱ 00:37)
Хорошего дня!
@javatg
Почитать:
— Немного о гигиене Java кода
— Польза создания однородных задач для параллельного вычисления
— Безопасность web приложений с использованием Identity Provider
— Java Digest #7
— 8 бесплатных курсов по большим языковым моделям
— Современные варианты баз данных
— Деплой приложения на Java. Хостим проект через push в Git
— QIWI Server Party 9.0 — 14 декабря, офлайн и онлайн
— Как распараллелить тесты с базой данных
— Хроники пикирующего бота или как важно не пропускать стадию QA в проектах
— Генерация контрактов OpenApi или прикладной API first: совсем немного про зачем
— Компоновка аннотаций в Spring
— Dominando la Programación Orientada a Objetos
— Try to add new feature to a Java Spring boot project
— Few words about Java code hygiene
— RabbitMQ Retry Strategy: Delay with Maximum Retry Threshold
— Mi experiencia con GraalVM y Spring Boot
— Records and data transfer
— Comparing Java and JavaScript
— Day when Skynet becomes self-aware, and 69 reasons to chill out with colleagues. Part 1.
— How Gradle disagreed with our Maven project
— What is Amortized Time Complexity Analysis
Посмотреть:
🌐 Ollama — модель уровня GPT. Используй GPT без ограничений и абсолютно бесплатно.
🌐 Another VS Code Extension For Java ? (⏱ 07:38)
🌐 Java 22 Unpacking - Inside Java Newscast #59 (⏱ 12:23)
🌐 What is multiple inheritance? - Cracking the Java Coding Interview (⏱ 00:59)
🌐 What is the first thing a consructor is doing? - Cracking the Java Coding Interview #java (⏱ 01:00)
🌐 Getting Started with Generational ZGC (⏱ 12:49)
🌐 Looking up Default Locale in Java 21 (⏱ 02:01)
🌐 Аналитики больше технари, чем программисты? Чья работа сложнее? (⏱ 01:06:26)
🌐 Сильная мотивация для джунов в IT — Евгений Кот (⏱ 00:38)
🌐 Когда нужно искать первую работу в IT — Андрей Смирнов (⏱ 00:37)
Хорошего дня!
@javatg
🚀 Spring Совет 🚀
Кэшируемая аннотация обеспечивает быстрый доступ к данным.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html
#Spring #SpringBoot
@javatg
Кэшируемая аннотация обеспечивает быстрый доступ к данным.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/cache/annotation/Cacheable.html
#Spring #SpringBoot
@javatg
Что представляют собой HTTP-методы?
Вот наиболее часто используемые HTTP-методы.
1. GET: получает ресурс или данные с сервера.
2. POST: отправляет данные для обработки на сервер, что обычно приводит к созданию нового ресурса.
3. PUT: обновляет или заменяет существующий ресурс новыми данными.
4. DELETE: удаляет конкретный ресурс.
5. PATCH: частично обновляет существующий ресурс новыми данными.
6. HEAD: получает метаданные ресурса без извлечения его фактического содержимого.
7. OPTIONS: возвращает допустимые HTTP-методы и возможности сервера для данного ресурса.
Эти HTTP-методы обеспечивают различные способы взаимодействия с ресурсами на сервере, позволяя выполнять различные операции, такие как получение, создание, обновление и удаление данных.
Что такое идемпотентность? Назовите идемпотентные методы
В REST (Representational State Transfer, передача репрезентативного состояния) под идемпотентностью понимается свойство некоторых HTTP-методов, при котором повторные идентичные запросы имеют тот же эффект, что и один запрос. Другими словами, многократное выполнение идемпотентной операции приводит к тому же результату, что и однократное.
Идемпотентные методы в REST гарантируют, что даже при дублировании или повторении запроса из-за проблем в сети/поведения клиента, система останется в том же состоянии и не вызовет нежелательных побочных эффектов. Идемпотентные методы обеспечивают безопасность повторных запросов, не вызывая при этом несогласованности или неожиданного поведения.
В REST идемпотентными считаются следующие HTTP-методы.
▪️GET: многократное получение ресурса не изменяет состояние сервера.
▪️PUT: многократное обновление ресурса одними и теми же данными приводит к одному и тому же результату.
▪️DELETE: многократное удаление ресурса приводит к одному и тому же результату.
Проектирование идемпотентных методов в RESTful API помогает обеспечить надежность, согласованность и отказоустойчивость распределенных систем, позволяя добиться надежного и предсказуемого поведения.
Что такое @Async в Spring Boot?
📌Читать
📌Часть 1
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Расширенные советы по Spring 🚀
Протоколирование HTTP-запросов с помощью фильтра
Включите протоколирование запросов с помощью фильтра
Подробнее: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/CommonsRequestLoggingFilter.html
#SpringTip #Java
@javatg
Протоколирование HTTP-запросов с помощью фильтра
CommonsRequestLoggingFilter
Включите протоколирование запросов с помощью фильтра
CommonsRequestLoggingFilter
, чтобы получать подробную информацию о входящих запросах. 🔥Подробнее: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/filter/CommonsRequestLoggingFilter.html
#SpringTip #Java
@javatg
🔥Подборка лучших обучающих каналов для программистов.
➡️Делитесь с коллегами и Сохраняйте себе, чтобы не потерять
⚡Машинное обучение
Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go
#️⃣C#
С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
🐍 Python
Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
💥 Хакинг Kali Linux
Kali linux
linux_kal - kali чат
Информационная безопасность
🐧 Linux
Linux academy
🦀 Rust
Rust программирование
Rust чат
🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🖥 Javascript/React/PHP
Javascript академия
React программирование
PHP
Книги frontend
Задачи frontend
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
Docker
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
➡️Делитесь с коллегами и Сохраняйте себе, чтобы не потерять
⚡Машинное обучение
Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат
🚀 Data Science
Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data
🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go
#️⃣C#
С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа
🐍 Python
Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги
☕ Java
Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги
💻 C++
C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии
💥 Хакинг Kali Linux
Kali linux
linux_kal - kali чат
Информационная безопасность
🐧 Linux
Linux academy
🦀 Rust
Rust программирование
Rust чат
🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат
📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки
🖥 Javascript/React/PHP
Javascript академия
React программирование
PHP
Книги frontend
Задачи frontend
🇬🇧 Английский для программистов
🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence
🔥 DevOPs
Devops для программистов
Книги Devops
Docker
📓 Книги
Библиотеки Книг для программситов
💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
@AssertTrue
. Вы помещаете его над методом, возвращающим булеву величину. Имя метода должно начинаться с
"is"
.#Java #Bean #Валидация
@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
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