Механизм сборки мусора в JVM — это не просто “магия, которая чистит память”, а сложная система, работающая по поколениям, фазам и стратегиям.
Понимание его внутренней архитектуры важно, если вы хотите управлять производительностью, избегать утечек и эффективно настраивать параметры JVM.
🔹 Архитектура: как устроена куча (Heap)
Куча памяти делится на поколения:
Heap
├── Young Generation
│ ├── Eden Space
│ └── Survivor Spaces (S0, S1)
└── Old Generation (Tenured)
Eden — вновь созданные объекты.
Survivor — те, кто “выжил” после первой сборки.
Old Gen — объекты, пережившие несколько сборок, считаются “долгоживущими”.
Дополнительно есть Metaspace (с Java 8), где хранятся данные о классах.
🔹 Алгоритм работы GC: по фазам
1. Mark
GC начинает с “корневых” ссылок (стек, глобальные переменные) и помечает все достижимые объекты.
2. Sweep
Удаляются все немаркированные объекты — они считаются “мертвыми”.
3. Compact (в некоторых GC)
Уплотнение памяти: “живые” объекты перемещаются ближе друг к другу, чтобы избежать фрагментации.
🔹 Типы сборок
1. Minor GC
Запускается при заполнении Eden. Очищаются только молодые поколения. Быстро, но может происходить часто.
2. Major GC / Full GC
Включает Old Gen и Metaspace. Дорогая операция, может “заморозить” все потоки (stop-the-world pause).
🔹 Типы сборщиков и их принципы
— Serial GC: однопоточная сборка. Просто и медленно.
— Parallel GC: многопоточная сборка всех поколений. Высокая пропускная способность.
— G1 GC: делит кучу на регионы, параллельно собирает “Region Set”. Поддерживает предсказуемые паузы.
— ZGC: целиком конкурентный сборщик. Работает с огромными кучами (до терабайта), паузы <10 мс.
— Shenandoah: минимальные паузы за счёт почти полной конкуренции с пользовательскими потоками.
🔹 Как GC определяет, что объект мёртв?
GC не использует reference count. Он строит граф достижимости:
1. Начинает с “корней” (GC roots)
2. Если оттуда нельзя добраться до объекта — он считается мусором
3. Это позволяет избежать утечек при циклических ссылках
🔹 Советы по оптимизации
— Избегайте долгоживущих ссылок (static, ThreadLocal) без необходимости
— Используйте WeakReference, если хотите избежать удержания объекта GC
— Кэшируйте объекты осознанно — утечка через Map может быть незаметной
— Задавайте лимиты памяти (-Xms512m -Xmx1024m)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека шарписта | C#, F#, .NET, ASP.NET
💾 Как выбрать стратегию кэширования: разбор 7 популярных алгоритмов
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
➡️ Читать статью
🐸 Библиотека шарписта
Кешировать нужно с умом. И нет, LRU — не серебряная пуля.
В статье вас ждёт разбор алгоритмов: LRU, LFU, FIFO и другие
– Примеры, где каждый работает лучше
– Плюсы и минусы подходов
– Практические советы по выбору стратегии
Если проектируете систему с большими нагрузками или оптимизируете производительность — материал будет как раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
👨🏻💻 Исследование IT-аудитории Proglib 2025: зарплаты, технологии, профессии
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
➡️ Вся статистика и детали — здесь
Библиотека программиста #свежак
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
Библиотека программиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎧 Что послушать — #подкаст
🔹 JavaHut News #1
Дата выпуска: 25 февраля 2025
Ведущие: Роман Меерсон и Евгений Никифоров
Продолжительность: 1 час 12 минут
Первый выпуск новостного формата от подкаста JavaHut — на котором идет обсуждение ключевых тем из последнего Java-дайджеста. Ведущие обсуждают тренды, технологии и важные изменения в экосистеме Java и смежных областях. Формат ориентирован на разработчиков, которые хотят не просто быть в курсе новостей, но и понимать их глубинный контекст.
🔹 Ключевые темы выпуска
00:02:32 — Обзор статьи Cay Horstmann: Java как скриптовый язык, Jupyter Kernel
00:09:26 — Тренды в Java-экосистеме на 2024 год
00:24:40 — Jakarta EE: прощание с EJB, судьба библиотек от RedHat
00:43:40 — SecureRandom: зачем он нужен и где используется
00:55:01 — Разработка Java-агентов и применение в ML
01:00:29 — Обновления вокруг DockerHub и последствия
🔗 Слушать выпуск на Spotify
🐸 Библиотека джависта #буст
🔹 JavaHut News #1
Дата выпуска: 25 февраля 2025
Ведущие: Роман Меерсон и Евгений Никифоров
Продолжительность: 1 час 12 минут
Первый выпуск новостного формата от подкаста JavaHut — на котором идет обсуждение ключевых тем из последнего Java-дайджеста. Ведущие обсуждают тренды, технологии и важные изменения в экосистеме Java и смежных областях. Формат ориентирован на разработчиков, которые хотят не просто быть в курсе новостей, но и понимать их глубинный контекст.
🔹 Ключевые темы выпуска
00:02:32 — Обзор статьи Cay Horstmann: Java как скриптовый язык, Jupyter Kernel
00:09:26 — Тренды в Java-экосистеме на 2024 год
00:24:40 — Jakarta EE: прощание с EJB, судьба библиотек от RedHat
00:43:40 — SecureRandom: зачем он нужен и где используется
00:55:01 — Разработка Java-агентов и применение в ML
01:00:29 — Обновления вокруг DockerHub и последствия
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
☸️ CKAD 2025. Самый свежий гайд по сдаче сертификации Certified Kubernetes Application Developer
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
➡️ Читать статью
🐸 Библиотека devops'a
CKAD стал более строгим к деталям — без системной подготовки можно завалить даже на банальных заданиях. Если хочется разобраться, что важно для получения сертификации — эта статья сэкономит часы.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Случайно удалили ветку, а в ней была недоделанная фича или рабочий хотфикс? Паника близко?
git reflog
Показывает историю всех действий в Git — коммиты, переключения веток, ребейзы и даже force-push’и. Идеально, чтобы вернуть ветку из забвения или откатиться на стабильное состояние.
Например:
git checkout -b restore-branch HEAD@{3}
Создаёт новую ветку с того момента, где были 3 действия назад.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
Приватность, скорость, расширенные функции — что выбрать? Разбираем популярные форки браузеров и их преимущества.
Что в статье:
Браузер — это не просто окно в интернет, а инструмент, который должен соответствовать вашим требованиям. Делитесь своим опытом в комментариях!
Прочитать подробнее статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
JDBC — для тех, кто хочет полный контроль. Пишете SQL сами и понимаете, что происходит в базе. Однако код будет повторяться, а отладка — настоящая головная боль. Как только проект растет, поддержка становится вызовом.
JPA — путь абстракции. Работаете с объектами, а не с SQL. Это удобство, но скрытая магия и потеря контроля могут создать проблемы с производительностью и отладкой в крупных проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
💻🧩 Когда HR требует LeetCode Hard: почему компании стреляют себе в ногу
Когда твоя компания не Google, но хочет отбирать кандидатов как Google — получается дорогой фейл и текучка талантов. Разбираемся в трендах IT-рекрутинга, которые выглядят как выстрел в ногу.
➡️ Читать статью
🐸 Библиотека программиста
Когда твоя компания не Google, но хочет отбирать кандидатов как Google — получается дорогой фейл и текучка талантов. Разбираемся в трендах IT-рекрутинга, которые выглядят как выстрел в ногу.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по Java | тесты, код, задания
Что будет результатом кода?
👍🏼 — true true
🔥 — true false
👾 — false true
⚡️ — false false
🐸 Библиотека задач по Java
👍🏼 — true true
🔥 — true false
👾 — false true
⚡️ — false false
Please open Telegram to view this post
VIEW IN TELEGRAM
🔹 JPoint 2025
📅 Даты: 3–4 апреля 2025 года
📍 Место проведения: Москва, Россия
JPoint — крупнейшая Java-конференция в России, собирающая опытных разработчиков для обсуждения современных практик Java-разработки, новых функций языка, нюансов работы с Spring, а также тем, связанных с JVM, Kotlin и Scala.
🔹 JavaLand 2025
📅 Даты: 1–3 апреля 2025 года
📍 Место проведения: Нюрбург, Германия
JavaLand — ежегодная конференция для Java-разработчиков, проходящая в уникальной обстановке парка развлечений. Мероприятие предлагает множество докладов, воркшопов и возможностей для нетворкинга с международным сообществом.
🔹 GeeCON 2025
📅 Даты: 14–16 мая 2025 года
📍 Место проведения: Краков, Польша
GeeCON — одна из крупнейших европейских конференций, посвященных Java и JVM-технологиям. В программе — выступления ведущих экспертов, обсуждение современных трендов и практик разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎭 Dev Memes: 1 апреля, а баги всё те же
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Джавистов, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
🐸 Библиотека джависта
Сегодня день официально разрешённого троллинга — и мы не могли пройти мимо. Собрали подборку мемов для Джавистов, которые вызывают лёгкое желание уволиться.
👉 Всё это — из нашего мемного канала «Библиотека IT-мемов»
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM