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流程图详解