JVM01_整体概述

Posted root_zhb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM01_整体概述相关的知识,希望对你有一定的参考价值。

文章目录

  1. 整体结构
  2. 详细结构
  3. 架构模型
  4. JVM生命周期

1、整体结构

  • Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。
  • jvm是运行在操作系统之上的,与硬件没有直接交互。

在这里插入图片描述

2、详细结构

原图:https://img-blog.csdnimg.cn/20210518203736751.png
译图:
在这里插入图片描述

3、架构模型

  1. 基于的指令集架构:跨平台性(无需硬件支持)、指令集小、指令多、执行性能比寄存器差。无需寻址(零地址指令方式分配)。
  2. 基于寄存器的指令集架构:依赖硬件、指令集大,执行效率高、需要寻址(一、二、三地址指令)

java指令集是基于栈的

public class StackStruTest {
    public static void main(String[] args) {
        int i = 2;
        int j = 3;
        int var = i + j;
    }
}

对生成的字节码文件进行反编译

javap -v StackStruTest.class
Code:
     stack=2, locals=4, args_size=1
        0: iconst_2       //常量2 
        1: istore_1       //放到操作数栈索引位置1  
        2: iconst_3       //常量3 
        3: istore_2       //放到操作数栈索引位置2
        4: iload_1        //加载 操作数栈索引位置1  也就是  i 
        5: iload_2        //加载 操作数栈索引位置2  也就是  j
        6: iadd           //常量2、3出栈,执行相加
        7: istore_3       //将结果k 保存在 操作数栈索引位置3  
        8: return         
     LineNumberTable:

4、JVM生命周期

  1. 启动
    通过引导类加载器(Bootstrap class loader)创建一个初始类(initial class)完成。
    初始类由虚拟机的具体实现指定。
  2. 执行
    执行一个java程序,就是执行一个叫做java虚拟机的进程。
  3. 退出
    程序结束、异常/错误、操作系统错误导致的JVM进程终止、Runtime/System类的exit方法(调用native的halt0())

以上是关于JVM01_整体概述的主要内容,如果未能解决你的问题,请参考以下文章

小白学习JVM--概述和模型

JVM系列 从一到掌握JVM系列之JVM 概述篇

android整体架构概述--①

JVM_虚拟机目录

JVM_虚拟机目录

JVM--14---垃圾回收----概述