排序
面试题:什么条件会触发 Java 的 young GC?
在Java中,Young GC(年轻代垃圾回收)的触发条件主要与年轻代(Young Generation)的内存使用情况有关。年轻代包括Eden区和两个Survivor区(S0和S1)。以下是触发Young GC的具体条件: 触发条...
面试题:Java 中的 young GC、old GC、full GC 和 mixed GC 的区别是什么?
在Java中,垃圾回收(GC)是自动内存管理的关键部分。不同的GC类型针对不同的内存区域和场景。以下是young GC、old GC、full GC和mixed GC的区别: 1. Young GC(年轻代GC) 目标区域:年...
面试题:什么是三色标记算法?
三色标记算法(Tri-color Marking Algorithm) 是一种用于垃圾回收的标记算法,主要用于追踪和标记存活对象。它是现代垃圾回收器(如 G1、CMS、ZGC 等)的核心算法之一。三色标记算法通过...
面试题:为什么 Java 新生代被划分为 S0、S1 和 Eden 区?
Java 新生代被划分为 Eden 区 和两个 Survivor 区(S0 和 S1),这种设计是为了优化垃圾回收的效率,减少内存碎片,并提高内存利用率。以下是这种划分的具体原因和优势: 1.&nbs...
面试题:为什么 Java 8 移除了永久代(PermGen)并引入了元空间(Metaspace)?
在 Java 8 中,永久代(PermGen)被移除,取而代之的是元空间(Metaspace)。这一变化主要是为了解决永久代的一些固有缺陷,并提升 JVM 的内存管理效率。以下是永久代被移除以及元空间引入的原...
面试题:为什么 Java 的垃圾收集器将堆分为老年代和新生代?
Java 的垃圾收集器将堆内存分为 老年代(Old Generation) 和 新生代(Young Generation),主要是基于以下两个核心观察和假设: 1. 弱分代假设(Weak Generational Hypoth...
面试题: Java 中如何判断对象是否是垃圾?不同垃圾回收方法有何区别?
在 Java 中,判断对象是否是垃圾以及回收垃圾是垃圾收集器(Garbage Collector, GC)的核心任务。以下是关于如何判断对象是否是垃圾,以及不同垃圾回收方法的详细说明。 1. 如何判断对象是...
面试题: Java 中常见的垃圾收集器有哪些?
在 Java 中,垃圾收集器(Garbage Collector, GC)是 JVM 的重要组成部分,负责自动管理内存,回收不再使用的对象。Java 提供了多种垃圾收集器,每种收集器都有其特定的使用场景和优缺点。以下...
面试题: Java 中的强引用、软引用、弱引用和虚引用分别是什么?
在 Java 中,引用类型决定了对象与垃圾回收器(GC)之间的交互方式。Java 提供了四种引用类型:强引用、软引用、弱引用和虚引用。它们的主要区别在于垃圾回收器对待这些引用的方式不同。 1. 强...
面试题:你了解 Java 的逃逸分析吗?
是的,逃逸分析(Escape Analysis)是 Java 虚拟机(JVM)中的一种优化技术,用于分析对象的动态作用域,以确定对象是否可以在栈上分配,而不是在堆上分配。逃逸分析的目的是减少堆内存的压力和...