摘要:
为什么 Java 新生代被划分为 S0、S1 和 Eden 区? 在 Java 的 垃圾回收(GC)机制中,新生代 被进一步划分为 Eden 区 和两个 Survivor 区(S0 和 S1)。这种划分主要是基于 对象生命周期短 和 高效内存管理 的需求,目的是优化垃圾回收的效率。 1. 新生代的特 阅读全文
posted @ 2024-12-11 12:10
Eiffelzero
阅读(542)
评论(0)
推荐(0)
摘要:
为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)? 在 Java 8 中,JVM 移除了 永久代(PermGen)并引入了 元空间(Metaspace),这一改变主要是为了解决 PermGen 空间不足 和 内存管理效率低 的问题。以下是具体原因和改动的细节。 阅读全文
posted @ 2024-12-11 12:04
Eiffelzero
阅读(164)
评论(0)
推荐(0)
摘要:
为什么 Java 的垃圾收集器将堆分为老年代和新生代? Java 垃圾收集器通过将堆内存划分为 新生代 和 老年代,优化了内存管理,提高了垃圾回收的效率。这种分代思想是基于 对象生命周期的特点。 1. 对象生命周期的特点 短生命周期对象(临时对象): 例如局部变量、方法返回值等,生命周期通常较短。 阅读全文
posted @ 2024-12-11 12:02
Eiffelzero
阅读(199)
评论(0)
推荐(0)
摘要:
Java 中如何判断对象是否是垃圾? 在 Java 中,垃圾是指不再被引用的对象。JVM 使用以下两种方法判断对象是否是垃圾: 1. 引用计数法(Reference Counting) 工作原理 每个对象维护一个计数器,记录被引用的次数。 当引用计数为 0 时,说明对象是垃圾,可以被回收。 优点 简 阅读全文
posted @ 2024-12-11 11:56
Eiffelzero
阅读(103)
评论(0)
推荐(0)
摘要:
Java 中常见的垃圾收集器 Java 提供了多种垃圾收集器(Garbage Collector, GC),每种收集器针对不同的应用场景和需求进行了优化。以下是常见的垃圾收集器及其特点。 1. Serial 收集器 特点 单线程工作,适合单核 CPU 环境。 使用 标记-复制算法(新生代)和 标记- 阅读全文
posted @ 2024-12-11 11:51
Eiffelzero
阅读(378)
评论(0)
推荐(0)
摘要:
Java 中的垃圾回收算法 Java 中的垃圾回收(Garbage Collection,GC)机制通过多种算法实现对堆内存的管理。以下是常见的垃圾回收算法: 1. 标记-清除算法(Mark-Sweep) 工作原理 标记阶段:遍历对象图,标记所有可达对象。 清除阶段:清除未标记的不可达对象,回收内存 阅读全文
posted @ 2024-12-11 11:48
Eiffelzero
阅读(741)
评论(0)
推荐(0)
摘要:
Java 中的引用类型:强引用、软引用、弱引用和虚引用 Java 中的引用类型主要分为 强引用、软引用、弱引用 和 虚引用,它们对对象的生命周期和垃圾回收(GC)行为产生不同的影响。 1. 强引用(Strong Reference) 定义 强引用是 Java 中最常见的引用类型。通过赋值操作符 = 阅读全文
posted @ 2024-12-11 00:51
Eiffelzero
阅读(62)
评论(0)
推荐(0)
摘要:
Java 的逃逸分析 1. 定义 逃逸分析(Escape Analysis)是 JVM 的一种优化技术,用于分析对象的作用域,从而决定对象的分配方式或优化手段。 主要目的是判断一个对象是否会逃离当前方法或线程的作用域。 2. 逃逸分析的类型 2.1 方法逃逸 如果对象被方法外的代码引用,则该对象发生 阅读全文
posted @ 2024-12-11 00:38
Eiffelzero
阅读(370)
评论(0)
推荐(0)
摘要:
Java 的 AOT(Ahead-Of-Time) 1. 定义 AOT(Ahead-Of-Time)编译是与 JIT(Just-In-Time)相对的一种编译方式。 在 AOT 模式下,Java 字节码(Bytecode)在程序运行之前,就被提前编译为目标平台的本地机器代码。 AOT 编译器:一个工 阅读全文
posted @ 2024-12-11 00:18
Eiffelzero
阅读(801)
评论(0)
推荐(0)