Java虚拟机

作用

java虚拟机就是二进制字节码的运行环境

位置

1、jvm是运行在操作系统上的,与硬件没有直接的交互
2、jdk中包含有前端编译器javac,jre中没有

java代码执行流程

1、在编译过程中,任一步骤失败则不能生成字节码文件
2、操作系统不识别字节码指令,只识别机器指令
3、在jvm中,经过类加载器、字节码校验器、执行引擎
4、执行引擎中有解释执行(保证响应事件)、JIT编译器(热点代码再编译成机器指令)。

jvm架构模型

栈的指令集架构

1、jvm即为该类
2、设计和实现简单,适用于资源受限的系统
3、避开了寄存器的分配难题,只用领地址指令方式分配
4、操作过程依赖操作栈。指令集更小,编译器容易实现
5、可移植性好、不需要硬件支持,更好的跨平台

寄存器的指令集架构、

1、x86指令集:pc与Android
2、指令集以一、二、三地址指令为主
3、依赖硬件,可移植性差
4、性能优秀和执行更高效

jvm生命周期

虚拟机启动

通过引导类加载器(BootStrap class loader)创建一个初始类(initial class)来完成的,该类有虚拟机的具体实现来指定的

虚拟机运行

1、一个运行中的Java虚拟机有这一个清晰的任务:执行java程序。
2、程序开始执行时他才运行,程序结束时他就停止。
3、执行一个所谓的java程序的时候,真真正正在执行的是一个叫做java虚拟机的进程。

虚拟机退出

1、程序正常执行 退出
2、程序在执行过程中遇到异常或错误而异常终止
3、操作系统错误导致
4、Runtime类的halt方法,或者System.exit方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值