文章目录
1.本地方法接口与本地方法栈
只要是程序中有native标记的方法,那么都会把这些方法放到本地方法栈中去,然后通过本地接口调用其他程序的功能
2.程序计数器
就是保存下一条即将执行的命令地址,比如有点类似班级课程表那样,记录了当天一堂课结束后,下一堂课上哪个
3.方法区
方法区:其实就是保存一个类的相关信息,比如class文件加载到我们JVM里后,这个class的相关类结构信息都保存在方法区的
4.栈
1.栈管运行,堆管存储
2.栈存储什么
栈,堆,方法区关系:
1.栈里保存的是对象的引用地址
2.堆里除了保存对象自己的数据,还保存了该对象的类结构的引用地址
5.堆
5.1.JDK7结构介绍
5.2.堆上创建对象过程
5.3.数据存储举例
5.4.对象生命周期和GC
1.新生区里又细分了8:1:1的堆结构,from区和to区每次GC后,都会先清空他们中占用比较多的内存,然后再把保留的其他 数据存放到他们中的另外一个空闲区域,每次GC,原来的区域都会全部清空一遍
5.5.永久区
1.jdk7的方法区的一个实现我们叫永久代,jdk8的方法区的一个实现我们叫元空间
5.6.堆参数调优
5.7.GC日志分析
6.GC
6.1.GC总体算法概述
6.2.引用计数法
6.3.复制算法
劣势:
6.4.标记清除
劣势:
6.5.标记压缩算法
劣势:
6.6.四种算法比较
6.7.分代收集算法
6.8.四种算法比较
7. JMM
7.1.什么是JMM