Jvm的特点:
1、 一次编译,到处运行(字节码);
2、 自动内存管理;
3、 自动的垃圾回收功能;
Jvm是跨平台,跨语言的
Jvm的位置
Jvm是一款程序虚拟机,区别于Vmvare这种系统虚拟机
1.1 jvm整体结构
1、 class文件由类装载器子系统加载初始化到内存中;
2、 运行时数据区中的方法区和堆是线程共享的,其他三个是每个线程都有各自的;
3、 执行引擎由编译器,JIT编译器,垃圾回收器组成;
1.2 java代码的执行过程
1、 源代码经过java编译器翻译成字节码;
2、 jvm把字节码转换为机器能识别的机器码;
3、 cpu执行代码;
1.3 jvm架构模型
指令集架构分为两种
1、 基于栈的指令集架构(jvm);
1、 1.设计实现简单,适用于资源受限的系统;
2、 零地址指令方式分配;
3、 指令集小;
4、 不需要硬件支持,移植性好,跨平台;
1、 基于寄存器的指令集架构;
1、 1.典型的应用x86的二进制指令集,pc/android;
2、 基于寄存器,对于硬件耦合性较高,可移植性差;
3、 执行更加高效;
4、 指令更少;
5、 指令集大部分以一地址指令,二地址指令,三地址指令为主;
1.4 jvm生命周期
1、 启动;
1、 1.通过引导类加载器创建一个初始类,这个类具体由具体的虚拟机实现来确定;
1、 执行;
1、 1.执行java程序,当一个java程序被执行的时候,其实是jvm在执行;
1、 退出;
1、 1.程序正常执行结束;
2、 程序执行异常/错误而终止;
3、 操作系统出现异常;
4、 线程调用System/Runtime类中的exit/halt方法,且java安全管理器也允许操作;
1.5 jvm各版本
1、 classicvm最开始的vm;
2、 exactvm高性能vm的雏形,有了jit即时编译器;
3、 HotSpotvm现代的vm;
4、 JRockit没有解释器,只有JIT即时编译器,号称最快的vm,被oracle收购,整合到HotSpotVM;
5、 J9ibm的vm,也号称最快的vm,但是仅限于ibm自家的产品;
6、 Graalvm下一代vm真正的跨语言vm;
7、 TaobaoVm淘宝基于hotSpot深度定制的vm,无法通用,对硬件有要求;
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: