温故知新-JVM篇

01 Mind Map

在这里插入图片描述

02 Question&Answer

Q1: 什么是HotSpot VM?
A:热点虚拟机,当前主流,最后由Oracle公司收购。


Q2:Java内存结构是怎样的(图片) ?
A:
class字节码文件 ->
类加载器 ->
本地方法栈 ->
Java虚拟机栈 ->
Java 堆(class对象) ->
方法区 ->
执行引擎 ->
垃圾回收器 ->
寄存器


Q3: Java 堆里面分为几个区域,分别为什么?
A:新生代(Eden、From、To)、老年代。


Q4: Java虚拟机栈里面包含什么?
A:对象引用(地址指针)、8种基本类型、方法出口等。


Q5: 本地虚拟机栈与Java虚拟机栈区别是什么?
A:执行方法考虑。


Q6: 方法区存放的是什么?
A:已被虚拟机加载的类信息,如常量、静态变量、即时编译后的代码数据等。


Q7: 什么是直接内存,与堆有什么关系?
A:堆外内存,堆总DirectByteBuffer作为这块内存的引用。


Q8: 什么是程序计数器,有什么特点?
A:线程的信号指示器,唯一没有定义OutOfMemoryError。


Q9: 什么是执行引擎,作用是什么?
A:负责执行Java字节码,编译成机器码才能执行。


Q10: System.gc()与finalize方法,调用后的效果以及什么时候被调用?


Q11: Java堆中的划分,分别名字为什么?各占比例多少?
A:(8:1:1)1->2。


Q12: 如何判断对象是否存活,原理是什么?
A:两种方法,第一种舍弃,第二种GCRoots。


Q13: 垃圾回收机制里用到的算法有哪些,分别用在哪个区域时间,举例子?
A:标志清除算法、复制算法、分代算法、标志压缩算法等。


Q14: GC类型有哪几种,什么时候触?发效率如何?
A:两种,从堆区域考虑。


Q15: JVM参数配置有哪些
A:垃圾收集器、堆初始值、堆最大值、新生代比例、新生代与老年代比例等。


Q16: tomcat调优建议,至少4条?
A:从垃圾收集器、堆设置、老年代比例等多方面考虑。


Q17: 垃圾收集器有哪些?
A:串行收集器、并行收集器、GMS、G1等。


Q18: 内存溢出与内存泄漏产生的原因?
A:溢出?泄漏?名字即可看出。


Q19: 字节码技术的优势及应用场景?
A:可以动态修改java字节码。


Q20: 常见的字节码操作库有那些?


Q21: 类加载器的流程是怎样的?


Q22: 热部署与热加载的区别,什么情况下使用?

发布了2618 篇原创文章 · 获赞 4883 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/qq_20042935/article/details/103822256