JVM —— 初识JVM(一)

Java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。每一条Java指令,Java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里,下面是JVM内存结构图:

JVM(Java虚拟机)的内存结构可以分为以下几个主要组成部分:

  1. 方法区(Method Area):存储类的结构信息,如类的字段、方法、构造函数等。它也被称为永久代(Permanent Generation)或元空间(Metaspace)。

  2. 堆(Heap):存储对象实例。在堆中分配的内存可以通过垃圾回收进行管理和释放。堆可以分为几个不同的区域,如新生代(Young Generation)和老年代(Old Generation)。

    • 新生代包括伊甸园区(Eden Space)和幸存者区(Survivor Spaces)。对象首先分配在伊甸园区,然后根据其存活时间被移动到幸存者区。

    • 幸存者区又分为幸存者区S0(From)和幸存者区S1(To)。当进行垃圾回收时,存活的对象会被从一个幸存者区复制到另一个幸存者区,以便为下一次垃圾回收做准备。

    • 老年代存储较长时间存活的对象。通常情况下,老年代的对象比新生代的对象更大。

  3. 栈(Stack):存储方法调用的信息,包括局部变量、操作数栈和方法调用的状态。每个线程都有一个独立的栈。

  4. 本地方法栈(Native Method Stack):类似于栈,但用于执行本地方法(Native Method)。

  5. 程序计数器(Program Counter):记录当前线程执行的字节码指令的地址。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值