您的当前位置:首页>新品 > 正文

【聚看点】JVM常用配置参数有哪些?40道面试题解答

来源:CSDN 时间:2023-02-15 08:48:57

1、对象在哪块内存分配?


(资料图片仅供参考)

2、谈谈 JVM 中的常量池

3、谈谈动态年龄判断

4、谈谈永久代

5、JVM 有哪些运行时内存区域?

6、运行时栈帧包含哪些结构?

7、JVM 的内存模型是什么?

8、JVM 如何确定垃圾对象?

9、哪些是 GC Roots?

10、被引用的对象就一定能存活吗?

11、强引用、软引用、弱引用、虚引用是什么,有什么区别?

12、你做过 JVM 调优,说说如何查看 JVM 参数默认值?

13、工作中常用的 JVM 配置参数有哪些?

14、谈谈对 OOM 的认识

15、什么情况发生栈溢出?

16、你有哪些手段来排查 OOM 的问题?

17、遇到过元空间溢出吗?

18、遇到过堆外内存溢出吗?

19、谈谈你知道的垃圾回收算法

20、谈谈你知道的垃圾收集器

21、生产环境用的什么JDK?如何配置的垃圾收集器?

22、如何查看 JVM 当前使用的是什么垃圾收集器?

23、如何开启和查看 GC 日志?

24、JVM 监控与分析工具你用过哪些?介绍一下。

25、JIT 是什么?

26、谈谈双亲委派模型

类加载代码逻辑

protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException {  // 首先,检查请求的类是否已经被加载过了  Class c = findLoadedClass(name);  if (c == null) {    try {      if (parent != null) {        c = parent.loadClass(name, false);      } else {        c = findBootstrapClassOrNull(name);      }    } catch (ClassNotFoundException e) {      // 如果父类加载器抛出ClassNotFoundException      // 说明父类加载器无法完成加载请求    }    if (c == null) {      // 在父类加载器无法加载时      // 再调用本身的findClass方法来进行类加载      c = findClass(name);    }  }  if (resolve) {    resolveClass(c);  }  return c;}

27、列举一些你知道的打破双亲委派机制的例子。为什么要打破?

28、说一下垃圾分代收集的过程

29、如何找到死锁的线程?

30、invokedynamic 指令是干什么的?

31、什么是方法内联?

32、什么是逃逸分析?

33、描述一下什么情况下,对象会从年轻代进入老年代

34、safepoint 是什么?

35、MinorGC、MajorGC、FullGC 什么时候发生?

36、说说类加载的过程

37、可以描述一下 class 文件的结构吗?

38、说说 JVM 如何执行 class 中的字节码。

39、生产环境 CPU 占用过高,你如何解决?

40、生产环境服务器变慢,如何诊断处理?

【Java学习资源】整理推荐

MAT 分析堆内存快照jclasslib 查看类信息增大 MAT 堆内存JVM 常用配置参数(Java 8)40 道JVM面试题解答JVM 问题排查常用指令jvisualvm 远程连接服务器 JVM字节码指令分类-verbose:gc 和 -XX:+PrintGC 的区别JVM字节码指令表图解 Class 文件结构Class 文件的结构JVM 故障处理工具列表HotSpot 内存分配的主要规则开启 GC 日志垃圾收集器及特点JVM垃圾回收算法什么样的 Java 对象会被当垃圾回收?内存溢出复现HotSpot VM 中对象的内存分析JVM 控制的内存区域JVM家族Java 的发展史常见 JVM dump 指令

【Java面试题与答案】整理推荐

基础与语法集合网络编程并发编程Web安全设计模式框架算法与数据结构异常文件解析与生成LinuxMySQLOracleRedisDubbo

标签:

最新新闻:

新闻放送
Top