Java虚拟机的基本特征
基于栈的体系绌构
动态加载程序
安全性
自动内存管理
多线程支持
与本地库的交互
java语言处理器结构
JVM与JRE、JDK的关系
JVM:Java Virtual Machine
负责执行符合规范的Class文件
JRE:Java Runtime Environment
包含JVM的类库
JDK:Java Development Kit
包含JRE不一些开发工具,如javac
java代码执行:
1 sun jdk中的javac或其它编译器将代码编译为class文件
2 调用ClassLoader装载class文件
3 执行class的时候:既有解释执行,又有编译执行
编译执行又可以分为client compiler和server compiler
java代码执行过程为
内存管理
jvm标准结构图
1 jvm使用的内存空间有-> 方法区,堆,jvm方法栈,本地方法栈,和pc寄存器
2 jvm内存分配有-> 栈上分配,TLAB分配,堆上分配
3 内存回收的算法有 -> Copy,Make-Sweep,Make-Compact
sun jdk的实现:分代回收->新生代gc,旧生代gc
可以通过jconsole,visualvm,jstat,jmap,MAT等工具来对内存进行分析
jvm的线程资源同步和交互机制
1 线程资源同步
2 线程交互机制
3 线程状态分析