JVM作用

 学过JAVA的我们都知道,JAVA语言的一大特点就是’一次编译,到处运行’,只需进行一次的编译操作即可放到任意操作系统运行,而实现这个特点的主要原因就在JVM的身上,java文件经过javac命令编译生成class字节码文件,通过java命令利用JVM生成相应操作系统的机器码即可实现在不同操作系统下运行

JVM:JAVA虚拟机知识点总结

JVM组成结构

JVM:JAVA虚拟机知识点总结

本地方法栈

 本地方法栈中储存class文件中用native关键字修饰的非JAVA实现相关方法

栈(线程)

JVM:JAVA虚拟机知识点总结

栈帧

用来存放方法的相关操作数据,其中(以方法add(a,b)令a+b为例):

  • 局部变量表:存放相关局部变量及值,若为对象则保存地址指向堆中相关位置,例:a=1,b=2

  • 操作数栈:存放待操作的值(包括赋值操作),例:1,2

  • 动态链接:将指令码中’#数字’的引用指向相应方法地址(结合后面的堆和方法区理解)

  • 方法出口:方法返回位置

 存放实例化对象,指向储存在元空间中的类元信息(类的组成部分)

元空间(方法区)

 存放常量、静态变量及类的类元信息,指向计算机系统直接内存

程序计数器

 记录待执行/正执行的JVM指令码行号(指令码文件可通过javap命令执行javap -c .class文件 > 输出路径,反编译查看)。

JVM:JAVA虚拟机知识点总结

JVM执行流程

场景描述

 假设我们要实现一个钱包程序,方法1为投币功能,方法2负责创建一个钱包对象将方法1投币的数量放到一个钱包中。

JVM:JAVA虚拟机知识点总结

相关文章:

  • 2021-12-09
  • 2021-11-06
  • 2021-08-20
  • 2022-01-29
  • 2021-11-18
  • 2019-07-20
  • 2021-06-03
  • 2021-09-04
猜你喜欢
  • 2021-11-26
  • 2021-07-27
  • 2021-06-27
  • 2021-11-29
  • 2021-07-29
  • 2021-08-23
相关资源
相似解决方案