#полезное
👋 Базовые приёмы экономии памяти в Java
1⃣ Ленивая инициализация "тяжёлых" полей
🟠 Используйте lazy initialization, чтобы откладывать создание объекта до момента, когда он действительно понадобится.
2⃣ Избегайте анонимных внутренних классов в циклах
🟠 Каждое такое использование создаёт объект внутреннего класса — это скрытая нагрузка на память.
3⃣ Используйте статические фабричные методы
🟠 Они позволяют экономить память за счёт повторного использования уже созданных экземпляров, вместо создания новых при каждом вызове.
4⃣ Применяйте метод intern()
🟠 Метод
Используя
5⃣ Используйте паттерн Flyweight для повторяющихся неизменяемых данных
🟠 Экономит память за счёт разделения общих экземпляров (используется, например, в
👉 Новости 👉 База вопросов
intern()
класса String возвращает каноническое представление строки.Используя
intern()
, можно гарантировать, что одна и та же строка будет представлена в памяти в виде единственного объекта, даже если она создаётся многократно.String s1 = "hello";
String s2 = "hello".intern();
Integer.valueOf()
, Boolean.TRUE
и т.п.).Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#Собес #Spring
🤔 Что такое Spring Boot и в чём его основное преимущество?
Spring Boot - это инструмент для быстрого создания приложений на базе Spring Framework. Он предоставляет автоматические настройки, готовые стартеры для интеграции зависимостей и встроенные серверы приложений. Благодаря этому Spring Boot позволяет минимизировать конфигурацию и быстро разрабатывать приложения, особенно микросервисы.
👉 Новости 👉 База вопросов
Spring Boot - это инструмент для быстрого создания приложений на базе Spring Framework. Он предоставляет автоматические настройки, готовые стартеры для интеграции зависимостей и встроенные серверы приложений. Благодаря этому Spring Boot позволяет минимизировать конфигурацию и быстро разрабатывать приложения, особенно микросервисы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
😵💫 Пакетная обработка JDBC через StatelessSession в Hibernate
Статья объясняет, как использовать StatelessSession в Hibernate 6 для быстрой пакетной вставки, обновления и удаления данных с помощью JDBC Batching — без лишнего кеша и с высокой производительностью.
Читать подробнее
👉 Новости 👉 База вопросов
Статья объясняет, как использовать StatelessSession в Hibernate 6 для быстрой пакетной вставки, обновления и удаления данных с помощью JDBC Batching — без лишнего кеша и с высокой производительностью.
Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😴 Советы по Java Stream API: Ленивое вычисление с использованием
Когда возникает необходимость повторно использовать потоковую обработку, можно воспользоваться
👉 Новости 👉 База вопросов
Supplier<Stream<T>>
Когда возникает необходимость повторно использовать потоковую обработку, можно воспользоваться
Supplier
. В обычных случаях поток (Stream) нельзя использовать повторно после его обработки.Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Spring
🤔 Разница между Spring и Spring Boot
Spring Framework — это универсальный фреймворк для создания приложений с гибкой конфигурацией. Spring Boot, в свою очередь, дополняет Spring, предоставляя автоматическую конфигурацию и встроенные серверы для быстрого создания приложений. Spring Boot подходит для быстрого старта проектов, минимизируя количество ручной конфигурации.
👉 Новости 👉 База вопросов
Spring Framework — это универсальный фреймворк для создания приложений с гибкой конфигурацией. Spring Boot, в свою очередь, дополняет Spring, предоставляя автоматическую конфигурацию и встроенные серверы для быстрого создания приложений. Spring Boot подходит для быстрого старта проектов, минимизируя количество ручной конфигурации.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 HashSet в Java
HashSet — это коллекция для хранения уникальных элементов без гарантии порядка. Относится к пакету java.util и реализует интерфейс Set, внутренне опираясь на HashMap.
Основные особенности Java HashSet:
🟠 Дубликаты игнорируются. Если добавить элемент, который уже есть в множестве — ничего не произойдёт.
🟠 Элементы не упорядочены ни по добавлению, ни по значению.
🟠 Допускается один null-элемент.
Производительность: Базовые операции
Часто используемые операции:
—
—
—
—
—
Как работает внутри
При выводе содержимого
👉 Новости 👉 База вопросов
HashSet — это коллекция для хранения уникальных элементов без гарантии порядка. Относится к пакету java.util и реализует интерфейс Set, внутренне опираясь на HashMap.
Основные особенности Java HashSet:
Производительность: Базовые операции
add, remove, contains
выполняются за константное время O(1), при условии качественной хеш-функции.Даже если дважды добавить строку "BMW" — в сете она появится только один раз.
Часто используемые операции:
—
add(E e)
— добавляет элемент, если его ещё нет—
remove(Object o)
— удаляет элемент, если он есть—
contains(Object o)
— проверяет наличие элемента—
size()
— возвращает количество элементов—
clear()
— очищает сетКак работает внутри
HashSet
использует внутренний HashMap
, где элементы сета хранятся как ключи, а значением выступает фиктивный объект. Это позволяет обеспечить уникальность и быстрый доступ.При выводе содержимого
HashSet
— элементы отображаются в произвольном порядке.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😇 CompletableFuture.
delayedExecutor()
Документация
👉 Новости 👉 База вопросов
delayedExecutor()
CompletableFuture.delayedExecutor()
позволяет выполнить задачу с отложенным запуском без блокировки основного потока. Это удобный инструмент для асинхронных операций с задержкой.Документация
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Spring
🤔 В чем разница между Dependency Injection и Inversion of Control?
loC — это общий принцип проектирования, согласно которому управление объектами и их зависимостями передается внешнему контейнеру или фреймворку. Dependency Injection - это конкретный способ реализации loC, при котором зависимости обьекта предоставляются ему извне, а не создаются внутри. ІС можно реализовать не только через DI, но и другими методами, например, через фабричный метод или событийное управление.
👉 Новости 👉 База вопросов
loC — это общий принцип проектирования, согласно которому управление объектами и их зависимостями передается внешнему контейнеру или фреймворку. Dependency Injection - это конкретный способ реализации loC, при котором зависимости обьекта предоставляются ему извне, а не создаются внутри. ІС можно реализовать не только через DI, но и другими методами, например, через фабричный метод или событийное управление.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
❤️🔥 Чувак сделал минималистичный лаунчер для Minecraft для личного использования.
Ссылки на скачивание и исходники (если интересно, как такой написать):
🟠 Скачать: https://github.com/sammwyy/MiniLaunch/releases
(Жми на ссылку с именем
🟠 Исходный код лаунчера на Java:
https://github.com/sammwyy/MiniLaunch
После скачивания просто дважды кликни по .jar, и всё готово
👉 Новости 👉 База вопросов
Теперь, когда кто-то из друзей спрашивает, какой лаунчер посоветуешь без вирусов — просто кидаю им свой :P
Ссылки на скачивание и исходники (если интересно, как такой написать):
(Жми на ссылку с именем
minilaunch.jar
)https://github.com/sammwyy/MiniLaunch
После скачивания просто дважды кликни по .jar, и всё готово
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
👨💻 Перевод Spring Boot на HTTPS без ругани браузера
Данная статья рассчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении.
В этой статье разбирается именно работа со Spring Boot и вшитым в него Apache Tomcat.
Читать статью
👉 Новости 👉 База вопросов
Данная статья рассчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении.
В этой статье разбирается именно работа со Spring Boot и вшитым в него Apache Tomcat.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Реализация паттернов проектирования на Java
Паттерны проектирования — это готовые решения распространенных задач, с которыми разработчики сталкиваются при создании сложных систем.
Этот репозиторий содержит всё необходимое для того, чтобы научиться применять их на практике.
Что внутри:
Понимание паттернов помогает писать более гибкий и поддерживаемый код, а этот репозиторий — хороший инструмент для изучения и практики.
Ссылка на GitHub
👉 Новости 👉 База вопросов
Паттерны проектирования — это готовые решения распространенных задач, с которыми разработчики сталкиваются при создании сложных систем.
Этот репозиторий содержит всё необходимое для того, чтобы научиться применять их на практике.
Что внутри:
🟠 Реализация классических паттернов с чистым и понятным кодом🟠 Детальные объяснения принципов работы🟠 Блок-схемы, иллюстрирующие работу каждого паттерна
Понимание паттернов помогает писать более гибкий и поддерживаемый код, а этот репозиторий — хороший инструмент для изучения и практики.
Ссылка на GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Spring
🤔 Что такое Spring контекст?
Spring контекст (или ApplicationContext) - это ядро Spring Framework, которое управляет жизненным циклом бинов и их зависимостями. Он позволяет создавать, настраивать и связывать обьекты приложения. Контекст поддерживает интернационализацию, обработку событий, доступ к ресурсам и интеграцию с внешними технологиями. Конфигурация контекста может быть выполнена через XML, аннотации или Java-классы.
👉 Новости 👉 База вопросов
Spring контекст (или ApplicationContext) - это ядро Spring Framework, которое управляет жизненным циклом бинов и их зависимостями. Он позволяет создавать, настраивать и связывать обьекты приложения. Контекст поддерживает интернационализацию, обработку событий, доступ к ресурсам и интеграцию с внешними технологиями. Конфигурация контекста может быть выполнена через XML, аннотации или Java-классы.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😎 JMH для микробенчмаркинга производительности:
JMH (Java Microbenchmark Harness) — это инструмент для измерения производительности небольших фрагментов кода, идеально подходит для оптимизации алгоритмов. В этом примере сравнивается простая цикл-реализация и использование Stream API.
🟠 JMH гарантирует точные и воспроизводимые тесты производительности
🟠 Используется для оптимизации критичных участков кода в продакшен-приложениях
👉 Новости 👉 База вопросов
JMH (Java Microbenchmark Harness) — это инструмент для измерения производительности небольших фрагментов кода, идеально подходит для оптимизации алгоритмов. В этом примере сравнивается простая цикл-реализация и использование Stream API.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤯 Как работает HashMap в Java?
1⃣ Внутреннее устройство – https://javarevisited.blogspot.com/2010/02/how-hashmap-works-in-java.html
2⃣ Механика методов get и put – https://java67.com/2013/06/how-get-method-of-hashmap-or-hashtable-works-internally.html
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM