<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>性能优化 - 标签 - 咔咔不太卡的博客</title><link>https://ksmaple.github.io/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link><description>性能优化 - 标签 - 咔咔不太卡的博客</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Thu, 09 Apr 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://ksmaple.github.io/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/" rel="self" type="application/rss+xml"/><item><title>JVM 垃圾回收机制详解</title><link>https://ksmaple.github.io/posts/java-jvm-gc/</link><pubDate>Thu, 09 Apr 2026 12:00:00 +0800</pubDate><author>咔咔</author><guid>https://ksmaple.github.io/posts/java-jvm-gc/</guid><description><![CDATA[<h2 id="什么是垃圾回收">什么是垃圾回收</h2>
<p>垃圾回收（Garbage Collection，GC）是 Java 虚拟机自动管理内存的机制，负责回收不再使用的对象，释放内存空间。</p>
<h2 id="jvm-内存结构">JVM 内存结构</h2>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="复制到剪贴板"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">JVM 内存区域
</span></span><span class="line"><span class="cl">├── 堆（Heap）
</span></span><span class="line"><span class="cl">│   ├── 年轻代（Young Generation）
</span></span><span class="line"><span class="cl">│   │   ├── Eden 区
</span></span><span class="line"><span class="cl">│   │   ├── Survivor From
</span></span><span class="line"><span class="cl">│   │   └── Survivor To
</span></span><span class="line"><span class="cl">│   └── 老年代（Old Generation）
</span></span><span class="line"><span class="cl">├── 方法区（Method Area）/ 元空间（Metaspace）
</span></span><span class="line"><span class="cl">├── 虚拟机栈（VM Stack）
</span></span><span class="line"><span class="cl">├── 本地方法栈（Native Method Stack）
</span></span><span class="line"><span class="cl">└── 程序计数器（Program Counter）</span></span></code></pre></div></div>
<h2 id="判断对象是否可回收">判断对象是否可回收</h2>
<h3 id="1-引用计数法">1. 引用计数法</h3>
<p>每个对象维护一个引用计数器，引用为 0 时回收。</p>
<p><strong>缺点</strong>：无法解决循环引用问题。</p>
<h3 id="2-可达性分析算法java-采用">2. 可达性分析算法（Java 采用）</h3>
<p>从 GC Roots 出发，不可达的对象可被回收。</p>]]></description></item></channel></rss>