面试题: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 对象被创建时,就进入了新建状...
面试题:MySQL 中 int(11) 的 11 表示什么?
在 MySQL 中,INT(11) 的括号内的数字(如这里的 11)实际上并不表示该整数类型可以存储的数值范围。 对于 INT 类型来说,它占用4个字节,无论你指定的宽度是多少,其能够存储的数值范围都是固...
面试题:Redis 中常见的数据类型有哪些?
Redis 支持多种数据类型,每种数据类型都针对特定的使用场景进行了优化。以下是 Redis 中常见的数据类型及其简要介绍: String(字符串) 最基础的数据类型,可用于存储文本或二进制数据。 支持...
面试题:JVM 垃圾回收时产生的 concurrent mode failure 的原因是什么?
在使用CMS(Concurrent Mark-Sweep)垃圾收集器时,'Concurrent Mode Failure'(并发模式失败)是一个重要的概念。这种失败通常发生在CMS尝试以并发模式执行老年代的垃圾回收时,但由于某些原因...
面试题:MySQL 三层 B+ 树能存多少数据?
MySQL 三层 B+ 树存储容量分析 要计算 MySQL 中三层 B+ 树能存储多少数据,我们需要考虑以下几个关键因素: 1. B+ 树结构特点 非叶子节点:只存储键值和指针(不存储实际数据) 叶子节点:存储...