JVM

本文详细介绍了JVM的工作原理,包括JVM指令的使用,如javap工具的-c选项用于查看字节码。接着阐述了JVM的运行时数据区,包括方法区、堆、栈、本地方法栈和程序计数器,其中堆是GC的主要管理区域,而栈则为每个方法执行提供栈帧。最后提到了执行引擎和本地接口在类加载及方法调用中的作用。
摘要由CSDN通过智能技术生成

JVM

JVM指令

JVM指挥机器工作的指示和命令
常用指令:

javap -c demo.java
javap是 Java class文件分解器,可以反编译,也可以查看java编译器生成的字节码。用于分解class文件
-c 分解方法代码,即显示每个方法具体的字节码
JVM模型

在这里插入图片描述

  1. 类加载器
  2. 运行时数据区(Runtime Data Area)
 - 方法区:存储虚拟机加载的类信息、常量、静态变量
 - 堆:存储实例化对象,所有的对象都存储在堆中,所有的线程共享java堆,java内存结构中占比最大,同时是GC垃圾回收机制的主要管理区域;
可分为年轻代、老年代
 - 栈(虚拟机栈):Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、
操作栈、动态链接、方法出口等信息;每一个方法被调用直至执行完成的过程,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程
 - 本地方法栈:执行本地方法(其他语言编写的方法),native修饰的方法,Object中的一些方法如getClass、hashcode、clone
 - 程序计数器:记录当前线程执行的字节码的行号,多个线程的程序计数器时相互独立的
  1. 执行引擎
  2. 本地接口
  3. 本地库
    在这里插入图片描述
    类加载器将Class文件读取后,放到运行时数据区,然后执行引擎执行或调用本地接口、本地库
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值