专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 JVM性能调优面试题及答案

JVM性能调优面试题及答案

更新时间:2022-05-07 09:10:49 来源:赢咖4 浏览2640次

1.垃圾收集器的优缺点是什么?

好处:

垃圾收集器通过删除不再引用和使用的对象来自动管理 JVM 内存。Java 开发人员可以专注于程序逻辑,而不用担心对象删除和内存管理。

垃圾收集器具有内置的高效算法,可确定何时运行垃圾收集器。

缺点:

在垃圾收集过程中,应用程序性能可能会受到影响。在某些称为“停止世界”的情况下,应用程序进程在垃圾收集过程发生时完全停止。

您可以指示 JVM 运行垃圾收集器,但不能保证。因此,作为开发人员,您不知道垃圾收集过程何时发生。

2.什么是“停止世界”?

在垃圾收集过程中,JVM 可能会停止所有应用程序进程线程的执行。这种冻结申请流程被称为“停止世界”

3.Java堆的代际结构你怎么理解?

Java 堆由以下部分构成,也称为代。

新生代——Java 程序创建的所有新对象都放入堆的新生代部分。垃圾收集在新一代上运行并删除所有短期对象。

新一代部分进一步分为两个部分。伊甸园空间和幸存者空间。

伊甸园空间- 所有新对象都被放入伊甸园空间。当伊甸园空间填满时,垃圾收集运行并删除所有没有引用的对象。所有仍然有引用的对象都被提升到幸存者空间。

幸存者空间- 如果不再引用对象,则在新生部分运行的每个垃圾收集都会从幸存者空间中删除对象。如果该对象仍被引用,它将增加该对象的年龄。在增量达到一定数量后,通常从 15 开始,具体取决于 JVM 实现,该对象将被提升到老年代部分。

老一代- 在新生代部分的幸存者部分幸存下来的对象被提升到老一代部分。老一代部分比新一代大得多。一个单独的垃圾收集过程,也称为 FullGC,发生在老年代部分。

PermGen - JVM 使用 PermGen 来存储关于类的元数据。

4.有哪些不同的垃圾收集算法?哪种算法更好?

以下是一些可用于垃圾收集的算法

串行 GC - 专为单 CPU 机器设计。在垃圾收集期间停止所有应用程序进程。遍历所有对象,将对象标记为垃圾回收,然后将其删除。

Parallel GC - 与 Serial 类似,不同之处在于使用多个线程进行垃圾收集。

Concurrent Mark Sweep - Concurrent Mark Sweep 与应用程序进程同时进行大部分垃圾收集。因此,所有应用程序完全停止的时间大大减少。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>