1. JVM基本认识

1.1 JAVA文件执行过程

计算机识别高级语言的过程:高级语言 -> 汇编语言 -> 机器语言

java文件–前端编译器–>class文件–JVM–>机器指令---->操作系统

在这里插入图片描述

1.2 JVM的架构模型

java编译器是基于栈的指令集架构,另外一种架构是基于寄存器的指令集架构
HotSpot是一种基于栈的指令集架构。

基于栈和基于寄存器:

基于栈不用分配寄存器,是内存级别的,都是使用的零地址指令。指令流的执行过程依赖于操作栈,更容易实现。而且不需要硬件支持

基于寄存器的需要分配寄存器是硬件级别的,使用的大多是一地址指令二地址指令和三地址指令。这些指令的执行要比栈操作高效,实现难度高,而且依赖硬件。

注:指令一般由两部分构成,一是地址二是数据。有几个地址就是几地址指令。

简单说明基于栈和基于寄存器的区别,并不是实际的jvm流程.

基于栈:
首先数据要入栈成如下
数据栈

1
2

操作栈

+

两栈依次取就是:
1+2=3
指令如下:
在这里插入图片描述

基于寄存器:

1+2=3

指令如下:
mov eax,1
add eax,2

基于栈跨平台性好,不依赖硬件,指令集小但指令多,指令性能没有寄存器好

1.3 JVM的生命周期

虚拟机的启动

JVM规范中规定:虚拟机由BootstrapClassLoader创建的一个初始类来启动
初始类由各类JVM虚拟机实现

虚拟机的执行

JVM的任务就是执行java程序,程序结束jvm就退出,实际上执行的是一个java虚拟的进程,比如Main方法打印一串数字就是jvm执行的一个Main线程

虚拟机的退出

程序结束会退出
操作系统异常结束虚拟机进程
程序中手动调用Runtime和System的exit方法

1.4 JVM结构

在这里插入图片描述

类加载子系统

类加载子系统将Class文件从内存或者网络中取出加载到JVM并初始化,详细过程见 2.1 类加载子系统

运行时数据区

运行是数据区是jvm中最为重要的一部分结构,是jvm整合管理数据的区域,同时也是垃圾回收的作用区域,详细内容见 3.1 运行时数据区

执行引擎

用于翻译class字节码文件为机器指令交给操作系统执行,其中还包括了垃圾回收器用于垃圾回收,详细见 4.1 执行引擎、5.1 GC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值