• Java虚拟机:JAVA字节码的虚拟计算机,就是二进制字节码的运行环境
特点:
1) 一次编译,到处运行
2) 自动内存管理
3) 自动垃圾回收
• JVM运行在操作系统之上,硬件-操作系统-JVM-字节码文件-USER
•Java编译器输入的指令流基本上是一种基于栈的集架构,另一种是棘突寄存器指令集的架构
基于栈:使用零地质指令方式分配,指令集更小,编译器更容易实现,不需要硬件支持,可移植性更好
基于寄存器:应用二进制指令集,完全依赖硬件,可移植性差,性能优秀执行更高效
JVM生命周期:启动-执行-结束
1. 虚拟机的启动是通过引导类加载器创建一个初始类来完成的
2. 虚拟机的执行
• 程序开始执行时虚拟机才运行,程序结束虚拟机停止
• 执行一个所谓的Java程序的时候,真正在执行的是一个叫JAVA虚拟机的进程
3. 虚拟机的退出
• 程序正常退出
• 程序执行过程中遇到异常或错误而终止
• 操作系统出现错误导致JAVA虚拟机进程终止
• 某线程调用exit方法或halt方法,安全管理器也允许这写操作
• JNI中卸载虚拟机
虚拟机:SUN Classic VM, Exact VM, HotSpot VM, JRockit VM, IBM J9 VM