运行时数据区

程序计数器(线程独有)

标记下一条指令的位置!

本地方法栈(线程独有)

直接内存(线程共享)

jvm可以直接访问内核空间的内存(zero copy)

虚拟机栈(线程独有)

栈针(每个方法对应一个栈针)

本地变量表
操作数栈
动态链接
return address
一道面试题

在这里插入图片描述
打印结果是8,为什么?我们来分析一下它的方法指令!
在这里插入图片描述
bipush:把8进行压栈
istore_1:把8弹出,赋值给本地变量表标志位为1的变量,也就是i
在这里插入图片描述
iload_1:把本地变量表标志位1的变量进行压栈,也就是i
iinc 1 by 1: 把本地变量表i进行加1
istore_1:把操作数栈中的值赋值给本地变量表1的变量,也就是i
因为操作数栈中的值是8,所以最终i还是8

堆(线程共享)

方法区(线程共享)

1.Perm Space (<1.8)
字符串常量位于PermSpace
FGC不会清理
大小启动的时候指定,不能变
2.Meta Space (>=1.8)
字符串常量位于堆
会触发FGC清理
不设定的话,最大就是物理内存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值