JVM整理
一,基本概念
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
二,JVM内存结构分析(又名:java运行时数据区)
线程共享:堆,方法区
线程私有:栈,程序计数器

内存结构图
堆内存细分

堆内存
注意:jdk1.8以后,永久代不再存在于堆内存中了,而是转移到了方法区,成为了元空间meteSpace
栈内存细分

栈内存
三,JMM(java内存模型)

四,当前流行的JVM
①:sun公司的HotSpot
②:EBA的jRocket(现在已被sun公司收购)
③:IBM公司的J9
五,GC时堆内存迭代过程

六,几种垃圾回收器和垃圾回收算法

七,类加载流程

八,类加载器的向上依赖

九,类加载时的两种机制
①:全盘负责委托机制

②:双亲委托加载机制

十,GC流程图详解
