重点:GC收集算法,监控内存溢出的方法,jvm优化方法,类加载器的方法,类的结构
一、jvm虚拟机将内存划分为6个部分:java虚拟机栈,本地方法栈,java堆,程序计数器,运行常量池,方法区
二、GC策略算法:1、引用计数算法 缺陷:循环引用的对象无法被回收
2、根搜索算法 是垃圾收集的基本问题。回收根不可到达的对象. 缺陷:需要停止程序
可以作为根(GC roots)对象的有:
1、虚拟机栈中的引用的对象。
2、方法区中的类静态属性引用的对象。
3、方法区中的常量引用的对象。
4、本地方法栈中JNI的引用的对象。
二、常见的GC回收算法 1、标记-清除算法 2、复制算法 3、标记-整理算法
1、标记-清除算法 :当堆中的内存被耗尽的时候,就会停止整个程序。停下来做2项工作:一个是标记,二是清除
标记:遍历所有GC-Roots能到达的对象,标记为存活。
清除:遍历堆中所有的对象,将没有标记的对象全部清除。
缺陷:效率低下,需要遍历堆中所有对象,而且还需要停止应用程序,清除的空间不是连续的