vault backup: 2024-09-01 20:49:54
This commit is contained in:
parent
cbd06fa7e4
commit
e156bccd0a
20
.obsidian/plugins/home-tab/data.json
vendored
20
.obsidian/plugins/home-tab/data.json
vendored
@ -24,20 +24,24 @@
|
||||
"unresolvedLinks": false,
|
||||
"recentFilesStore": [
|
||||
{
|
||||
"filepath": "wiki/zero/00 Разработка.md",
|
||||
"timestamp": 1725212505883
|
||||
"filepath": "garden/ru/meta/zero/00 Java разработка.md",
|
||||
"timestamp": 1725212987896
|
||||
},
|
||||
{
|
||||
"filepath": "garden/ru/dev/java/gc/Garbage Collector.md",
|
||||
"timestamp": 1725212939342
|
||||
},
|
||||
{
|
||||
"filepath": "garden/ru/index.md",
|
||||
"timestamp": 1725211577159
|
||||
"timestamp": 1725212936552
|
||||
},
|
||||
{
|
||||
"filepath": "garden/ru/files/digital-garden.png",
|
||||
"filepath": "garden/ru/meta/zero/00 Разработка.md",
|
||||
"timestamp": 1725212879708
|
||||
},
|
||||
{
|
||||
"filepath": "garden/ru/meta/files/digital-garden.png",
|
||||
"timestamp": 1725211559462
|
||||
},
|
||||
{
|
||||
"filepath": "knowledge/english/Полезные фразы.md",
|
||||
"timestamp": 1725211104506
|
||||
}
|
||||
],
|
||||
"bookmarkedFileStore": [],
|
||||
|
@ -1,16 +1,24 @@
|
||||
{
|
||||
"recentFiles": [
|
||||
{
|
||||
"basename": "00 Разработка",
|
||||
"path": "garden/ru/meta/zero/00 Разработка.md"
|
||||
"basename": "00 Java разработка",
|
||||
"path": "garden/ru/meta/zero/00 Java разработка.md"
|
||||
},
|
||||
{
|
||||
"basename": "Garbage Collector",
|
||||
"path": "garden/ru/dev/java/gc/Garbage Collector.md"
|
||||
},
|
||||
{
|
||||
"basename": "index",
|
||||
"path": "garden/ru/index.md"
|
||||
},
|
||||
{
|
||||
"basename": "00 Разработка",
|
||||
"path": "garden/ru/meta/zero/00 Разработка.md"
|
||||
},
|
||||
{
|
||||
"basename": "digital-garden",
|
||||
"path": "garden/ru/files/digital-garden.png"
|
||||
"path": "garden/ru/meta/files/digital-garden.png"
|
||||
},
|
||||
{
|
||||
"basename": "Полезные фразы",
|
||||
@ -48,18 +56,10 @@
|
||||
"basename": "Home",
|
||||
"path": "Home.md"
|
||||
},
|
||||
{
|
||||
"basename": "Garbage Collector",
|
||||
"path": "knowledge/dev/java/gc/Garbage Collector.md"
|
||||
},
|
||||
{
|
||||
"basename": "Garbage First",
|
||||
"path": "knowledge/dev/java/gc/Garbage First.md"
|
||||
},
|
||||
{
|
||||
"basename": "00 Java разработка",
|
||||
"path": "wiki/zero/00 Java разработка.md"
|
||||
},
|
||||
{
|
||||
"basename": "Скрипты для Git",
|
||||
"path": "knowledge/dev/Скрипты для Git.md"
|
||||
|
@ -6,7 +6,7 @@ date:
|
||||
- - 2024-04-07
|
||||
zero-link:
|
||||
- "[[00 Алгоритмы]]"
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Бинарный поиск]]"
|
||||
linked:
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2024-04-07
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
link: https://struchkov.dev/blog/ru/java-debugging-annotation-processor/
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2024-04-07
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
link: https://struchkov.dev/blog/ru/multiple-connections-to-h2/
|
||||
|
@ -9,7 +9,7 @@ tags:
|
||||
- зрелость/🌿
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../meta/zero/00 Java разработка|00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
---
|
@ -11,8 +11,11 @@ title: Struchkov's Digital Garden
|
||||
|
||||
Основная идея цифрового сада — это процесс, а не результат. Здесь можно увидеть черновики мыслей, промежуточные этапы работы над проектами и идеи, которые ещё только ждут своего часа. Всё связано между собой гипер-ссылками, создавая сеть знаний, которую можно изучать и расширять.
|
||||
|
||||
![digital-garden](files/digital-garden.png)
|
||||
![digital-garden](meta/files/digital-garden.png)
|
||||
|
||||
## Zero Links
|
||||
- [Разработка](meta/zero/00%20Разработка.md)
|
||||
- [Java разработка](meta/zero/00%20Java%20разработка.md)
|
||||
## Чего стоит избегать
|
||||
> [!WARNING] DISCLAMER
|
||||
> Приветствуются комментарии по теме заметки для улучшения и исправления фактических ошибок. Но ==не стоит указывать на грамматические ошибки или опечатки.== В первую очередь это мои заметки, которые можн
|
||||
|
Before Width: | Height: | Size: 551 KiB After Width: | Height: | Size: 551 KiB |
7
garden/ru/meta/zero/00 Java разработка.md
Normal file
7
garden/ru/meta/zero/00 Java разработка.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
tags:
|
||||
- type/zero-link
|
||||
parents:
|
||||
- "[[00 Разработка]]"
|
||||
---
|
||||
- [Garbage Collector](gc/Garbage%20Collector.md)
|
@ -3,3 +3,4 @@ tags:
|
||||
- type/zero-link
|
||||
title: Разработка
|
||||
---
|
||||
- [Java разработка](00%20Java%20разработка.md)
|
@ -6,10 +6,10 @@ tags:
|
||||
date:
|
||||
- - 2024-03-03
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
- "[[00 Криптография]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
Добавляем зависимость
|
||||
```xml
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Архитектура JVM]]"
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
В JVM есть Class Loader Subsystem, здесь хранится информация о классах. Есть различные Class Loaders.
|
||||
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[Java 8 LTS|java 8]]"
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-15
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -6,7 +6,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -6,7 +6,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[JDK 17]]"
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
## Изменения
|
||||
- Появился новый сборщик [Concurrent Mark Sweep](Concurrent%20Mark%20Sweep.md)
|
@ -5,7 +5,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[JDK 8]]"
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -6,7 +6,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-22
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[Java Разработка]]"
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[JVM]]"
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
## GC
|
||||
- [Serial](Serial%20GC.md)
|
||||
|
@ -4,11 +4,11 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: 2023-11-12
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
Safe Point — это такая точка в выполнении программы, в которой все потоки приложения находятся в известных и устойчивых состояниях, что позволяет [сборщику мусора](Garbage%20Collector.md) безопасно анализировать и изменять структуры данных памяти, такие как куча (heap).
|
||||
Safe Point — это такая точка в выполнении программы, в которой все потоки приложения находятся в известных и устойчивых состояниях, что позволяет [сборщику мусора](../../../garden/ru/dev/java/gc/Garbage%20Collector.md) безопасно анализировать и изменять структуры данных памяти, такие как куча (heap).
|
||||
|
||||
Во время выполнения программы на Java, потоки могут быть остановлены сборщиком мусора, чтобы обеспечить согласованность данных в памяти. Однако останавливать их можно только в определённых местах, которые называются Safe Points. Это необходимо для того, чтобы гарантировать, что потоки не находятся в середине операции, которая может изменять состояние памяти, и для того, чтобы у сборщика мусора была возможность корректно анализировать достижимые объекты и ссылки между ними.
|
||||
|
||||
|
@ -6,9 +6,9 @@ tags:
|
||||
date:
|
||||
- - 2024-03-03
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
JOOQ (Java Object Oriented Querying) — это библиотека для Java, предназначенная для построения SQL-запросов с использованием API, основанного на шаблонах. Она позволяет разработчикам писать типобезопасные SQL-запросы с помощью Java-кода, что облегчает интеграцию базы данных в приложения Java. JOOQ поддерживает большинство реляционных баз данных, включая PostgreSQL, MySQL, Oracle, SQL Server и многие другие.
|
||||
|
||||
|
@ -10,8 +10,8 @@ tags:
|
||||
date:
|
||||
- - 2024-03-03
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Java Фреймворки]]"
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -4,8 +4,8 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: 2023-11-15
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Java Фреймворки]]"
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-22
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[00 Hibernate]]"
|
||||
linked:
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-22
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Quarkus]]"
|
||||
linked:
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-22
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Quarkus]]"
|
||||
linked:
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-10-31]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Quarkus]]"
|
||||
linked:
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Снипеты на Java]]"
|
||||
linked:
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Этот алгоритм пытается собирать мусор в то же время, когда работает приложение, чтобы уменьшить влияние сбора мусора на производительность приложения.
|
||||
|
||||
|
@ -6,9 +6,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked: []
|
||||
---
|
||||
Появился в [Java 7](Java%207.md) и использует [Generational Collection](Generational%20Collection.md).
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Mark and Sweep]]"
|
||||
---
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
- Появился в [Java 11](Java%2011), но остался в статусе экспериментального
|
||||
- Вообще не собирает мусор
|
||||
|
@ -5,10 +5,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Можно сказать, что этот сборщик пришел на замену [CMS](Concurrent%20Mark%20Sweep.md) в [Java 9](Java%209.md). Также, как и остальные сборщики использует подход [Generational Collection](Generational%20Collection.md), однако Heap разделяется не на большие части Young, Old, а на небольшие равные регионы.
|
||||
|
||||
@ -30,13 +30,13 @@ linked:
|
||||
>
|
||||
> В [[Java 11]] были внесены изменения в обработку больших объектов.
|
||||
## Minor Collection
|
||||
Minor сборка обычно происходит, когда eden заполняется. Над [minor](Garbage%20Collector.md#^minor) сборками мусора работают несколько потоков. Но очистка выполняется не на всем поколении, а только на регионах молодого поколения. За счет этого количество [StopTheWorld](StopTheWorld.md) становится больше, но сборка выполняется быстрее и не превышает желаемое время.
|
||||
Minor сборка обычно происходит, когда eden заполняется. Над [minor](../../../../garden/ru/dev/java/gc/Garbage%20Collector.md#^minor) сборками мусора работают несколько потоков. Но очистка выполняется не на всем поколении, а только на регионах молодого поколения. За счет этого количество [StopTheWorld](StopTheWorld.md) становится больше, но сборка выполняется быстрее и не превышает желаемое время.
|
||||
## Mixed Collection
|
||||
Mixed сборка обрабатывает как молодое поколение, так и часть старого поколения. Эта запускается после определенного количества minor сборок.
|
||||
|
||||
В G1 существует процесс, называемый Marking Cycle, который работает параллельно с основным приложением и составляет список живых объектов. Он напоминает работу сборщика [CMS](Concurrent%20Mark%20Sweep.md).
|
||||
|
||||
- **Initial mark.** Пометка [GC Root](Garbage%20Collector.md#^gcroot) с использованием информации от [minor](Garbage%20Collector.md#^minor) сборок.
|
||||
- **Initial mark.** Пометка [GC Root](../../../../garden/ru/dev/java/gc/Garbage%20Collector.md#^gcroot) с использованием информации от [minor](../../../../garden/ru/dev/java/gc/Garbage%20Collector.md#^minor) сборок.
|
||||
- В [Java 10](Java%2010.md) были внедрены улучшения. Параллельная пометка и улучшенное использование ресурсов процессора.
|
||||
- **Concurrent marking.** Пометка всех живых объектов в heap. Работает в нескольких потоках.
|
||||
- **Remark.** Дополнительный поиск не учтенных ранее живых объектов. Используется [StopTheWorld](StopTheWorld.md)
|
||||
@ -76,7 +76,7 @@ G1 копирует объекты из одной или нескольких
|
||||
- Работает только, когда идет фоновая сборка мусора.
|
||||
- Сохраняет старое значение поля
|
||||
- Поддерживается корректность фоновой маркировки
|
||||
- [SATB](Garbage%20Collector.md#^satb)
|
||||
- [SATB](../../../../garden/ru/dev/java/gc/Garbage%20Collector.md#^satb)
|
||||
- Post-barrier
|
||||
- Поддержка актуальности Remembered Set
|
||||
- Не срабатывают, когда мы модифицируем указатель из молодого объекта в молодой
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Этот алгоритм основан на нескольких идеях.
|
||||
|
||||
@ -36,7 +36,7 @@ linked:
|
||||
|
||||
Конкретно в Hotspot, если объект большой (1+ mb) он может быть сразу помещен в Old Generation. А новые объекты создаются в области eden, если объект переживает сборку мусора, то он переносится в область s0, если переживает сборку в s0, переносится в s1, после чего переносится в Old Generation.
|
||||
|
||||
Если eden заполнен, то выполняется [minor](Garbage%20Collector.md#^minor) сборка мусора.
|
||||
Если eden заполнен, то выполняется [minor](../../../../garden/ru/dev/java/gc/Garbage%20Collector.md#^minor) сборка мусора.
|
||||
|
||||
При сборке только в молодом поколении есть проблема: мы можем удалить объект в молодом поколении, на который ссылаются из старого поколения. В [Serial GC](Serial%20GC.md)/[Parallel GC](Parallel%20GC.md) для решения этой проблемы используют специальную структуру Card Table. При записи ссылки из старого поколения в молодое, в Card Table делается пометка. Эта пометка означает, что в такой-то области старого поколения может быть ссылка на молодое. То есть это не точное знание, а маркер, который говорит нам проверить какую-то область памяти на наличие ссылок.
|
||||
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Этот алгоритм пытается разбить задачу сбора мусора на меньшие части, чтобы уменьшить паузы ([StopTheWorld](StopTheWorld.md)), вызванные сбором мусора.
|
@ -7,7 +7,7 @@ zero-link:
|
||||
- "[[../../../../garden/ru/meta/zero/00 Разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
---
|
||||
Этот алгоритм является альтернативой [SATB](Snapshot%20at%20the%20beginning%20(SATB).md) и отслеживает изменения, происходящие после начала фазы маркировки.
|
||||
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Mark and Sweep]]"
|
||||
---
|
||||
|
@ -5,9 +5,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Mark and Compact]]"
|
||||
---
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Этот алгоритм использует несколько потоков для выполнения сбора мусора, что может ускорить процесс на многоядерных процессорах.
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
В отличие от [Parallel GC](Parallel%20GC.md) ([Generational Collection](Generational%20Collection.md), [Copy Collector](Copy%20Collector.md), [Mark and Compact](Mark%20and%20Compact.md), [Parallel Collection](Parallel%20Collection.md)) этот сборщик уже умеет работать в параллельном режиме как с областью Young Generation, так и с областью Old Generation.
|
||||
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Serial GC]]"
|
||||
- "[[Concurrent Mark Sweep|Concurrent Mark Sweep]]"
|
||||
|
@ -5,9 +5,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Parallel GC]]"
|
||||
- "[[Concurrent Mark Sweep|Concurrent Mark Sweep]]"
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[ZGC]]"
|
||||
---
|
||||
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
linked:
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
---
|
||||
Это временная остановка всех процессов программы для выполнения сборки мусора. При остановке намного проще выполнять сборку мусора.
|
||||
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-08]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
linked:
|
||||
- "[[Shenandoah GC]]"
|
||||
---
|
||||
|
@ -5,10 +5,10 @@ tags:
|
||||
date:
|
||||
- - 2023-11-22
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Java Разработка]]"
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
JDBC (Java Database Connectivity) — это стандартный API, который определяет, как клиент может получить доступ к базе данных. Вот как он работает:
|
||||
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[SpringBoot]]"
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Снипеты на Java]]"
|
||||
linked:
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Снипеты на Java]]"
|
||||
linked:
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Снипеты на Java]]"
|
||||
linked:
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Снипеты на Java]]"
|
||||
linked:
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
# HotSpot JVM
|
||||
![](Pasted%20image%2020231106101449.png)
|
||||
@ -20,4 +20,4 @@ linked:
|
||||
## Executor Engine
|
||||
## JIT Compiler
|
||||
### Garbage Collector
|
||||
![Garbage Collector](Garbage%20Collector.md)
|
||||
![Garbage Collector](../../../garden/ru/dev/java/gc/Garbage%20Collector.md)
|
@ -4,7 +4,7 @@ tags:
|
||||
date:
|
||||
- - 2024-01-10
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[JVM]]"
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: 2023-11-15
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
Лямбда-выражения в Java представляют собой интересную и относительно сложную часть языка, особенно когда речь идет о том, как они работают во время выполнения программы. Вот основные моменты, которые стоит понимать:
|
||||
|
||||
|
@ -5,9 +5,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: 2023-11-15
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
Нативные сборки в контексте Java относятся к процессу компиляции Java-приложений в нативный машинный код, специфичный для конкретной операционной системы и архитектуры процессора. Это отличается от традиционного подхода Java, где приложения компилируются в байт-код и выполняются на Java Virtual Machine ([JVM](JVM.md)). Основным инструментом для создания нативных сборок в Java является GraalVM Native Image.
|
||||
## Плюсы
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[Maven]]"
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
article: https://note.struchkov.dev/sravnieniie-enum-v-java/
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
date:
|
||||
- - 2023-11-20
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
article: https://note.struchkov.dev/sravnitie-konstanty-slieva/
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
# Heap
|
||||
^heap
|
||||
|
@ -4,9 +4,9 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
- [Архитектура JVM](Архитектура%20JVM.md)
|
||||
- [Garbage Collector](Garbage%20Collector.md)
|
||||
- [Garbage Collector](../../../garden/ru/dev/java/gc/Garbage%20Collector.md)
|
@ -4,10 +4,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-06]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
Создание объекта за редкими исключениями сопровождается вызовом ключевого слова `new`. Далее происходит так называемая аллокация в памяти, под новый объект выделяется область памяти в [Heap](Структура%20памяти%20Java.md#^heap). Если памяти будет не достаточно, то будет предпринята попытка [сборки мусора](Garbage%20Collector.md). Если и это не поможет, то приложение упадет с исключением.
|
||||
Создание объекта за редкими исключениями сопровождается вызовом ключевого слова `new`. Далее происходит так называемая аллокация в памяти, под новый объект выделяется область памяти в [Heap](Структура%20памяти%20Java.md#^heap). Если памяти будет не достаточно, то будет предпринята попытка [сборки мусора](../../../garden/ru/dev/java/gc/Garbage%20Collector.md). Если и это не поможет, то приложение упадет с исключением.
|
||||
|
||||
В памяти объект хранится в виде заголовков и содержания. Содержание, это то что указывает разработчик, то ради чего существует объект. А заголовки, это техническая мета-информация, которая нужна для правильного функционирования JVM.
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-09]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[00 Hibernate]]"
|
||||
linked:
|
||||
|
@ -5,10 +5,10 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-11-07]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
- "[[Garbage Collector]]"
|
||||
- "[[../../garden/ru/dev/java/gc/Garbage Collector]]"
|
||||
---
|
||||
Так называется процесс выделения памяти под новый объект.
|
||||
|
||||
|
@ -4,7 +4,7 @@ tags:
|
||||
- зрелость/🌱
|
||||
date: "[[2023-10-21]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
- "[[Quarkus]]"
|
||||
linked:
|
||||
|
@ -91,7 +91,7 @@ zero-link:
|
||||
- [ ] Знаешь как устроен стек?
|
||||
- [ ] Можешь рассказать про пул строк?
|
||||
- [ ] А есть ли другие пулы?
|
||||
### [Garbage Collector](Garbage%20Collector.md)
|
||||
### [Garbage Collector](../../garden/ru/dev/java/gc/Garbage%20Collector.md)
|
||||
- **Middle**
|
||||
- [ ] Объясни принципы работы сборщика мусора в Java.
|
||||
- [ ] Когда объект переносится из одной области хипа в другую, что происходит с областью откуда был перемещен объект?
|
||||
|
@ -5,7 +5,7 @@ tags:
|
||||
- type/zero-link
|
||||
date: "[[2023-11-09]]"
|
||||
zero-link:
|
||||
- "[[00 Java разработка]]"
|
||||
- "[[../../garden/ru/meta/zero/00 Java разработка]]"
|
||||
parents:
|
||||
linked:
|
||||
linked:
|
||||
---
|
||||
|
@ -1,7 +0,0 @@
|
||||
---
|
||||
tags:
|
||||
- type/zero-link
|
||||
parents:
|
||||
- "[[../../garden/ru/meta/zero/00 Разработка]]"
|
||||
---
|
||||
- [Garbage Collector](knowledge/dev/java/gc/Garbage%20Collector.md)
|
Loading…
Reference in New Issue
Block a user