排序
面试题:JVM 垃圾回收调优的主要目标是什么?
JVM垃圾回收(Garbor Collection, GC)调优的主要目标集中在以下几个方面: 减少GC停顿时间(Pause Time): 对于许多应用程序,特别是那些需要快速响应的实时系统或交互式应用,减少垃圾回收导...
面试题:JVM 有那几种情况会产生 OOM(内存溢出)?
Java虚拟机(JVM)在运行过程中可能会遇到多种原因导致的内存溢出(OutOfMemoryError,简称OOM)。以下是几种常见的OOM情况及其产生原因: Java堆空间不足(Java heap space): 当创建对象时,...
面试题:JDK 1.8 对 HashMap 除了红黑树还进行了哪些改动?
在 JDK 1.8 中,除了引入红黑树(用于优化链表过长时的查询效率)外,HashMap 还进行了多项重要改动,以下是主要的优化点: 1. 哈希函数的优化 改进计算方式:在 JDK 1.7 中,HashMap 的哈希值...
面试题:为什么 Java 中 CMS 垃圾收集器在发生 Concurrent Mode Failure 时的 Full GC 是单线程的?
当使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure' 是指在CMS尝试以并发模式执行老年代的垃圾回收时,由于老年代空间不足而无法完成该过程,导致不得不触发一次Full ...
面试题:Java 的 StringBuilder 是怎么实现的?
StringBuilder 是 Java 中用于高效拼接字符串的一个可变序列类,位于 java.lang 包中。它通过减少创建中间的 String 对象来提高性能,特别是在需要进行大量字符串操作的场景下。以下是 StringBu...
面试题:线程的生命周期在 Java 中是如何定义的?
在 Java 中,线程的生命周期定义了线程从创建到终止所经历的不同状态。这些状态由 Thread.State 枚举类型表示,具体包括以下几种: 1. 新建(New) 当一个 Thread 对象被创建时,就进入了新建状...
面试题:JVM 垃圾回收时产生的 concurrent mode failure 的原因是什么?
在使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure'(并发模式失败)是一个重要的概念。这种失败通常发生在CMS尝试以并发模式执行老年代的垃圾回收时,但由于某些原因...
面试题:Java 中的强引用、软引用、弱引用和虚引用分别是什么?
在Java中,引用类型主要包括强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。每种引用类型都有其特定的用途和应用场景,下面...
面试题:你了解 Java 的逃逸分析吗?
逃逸分析是 Java 虚拟机(JVM)在运行时进行的一项动态分析技术,主要用于判断一个对象的引用是否可能“逃逸”出当前线程或方法的范围。 如果 JVM 能够确定一个对象不会逃逸到其他线程或方法中...
面试题:什么情况下会触发 Java 的 Full GC?
在Java中,Full GC指的是对整个堆(包括年轻代、老年代和永久代/元空间)进行垃圾回收的过程。触发Full GC的情况有多种,以下是一些常见的触发条件: 1. 老年代空间不足 当老年代没有足够的空间...
