JVM 内存划分简单说明

电脑的内存条由操作系统管理,JVM需要请求操作系统分配内存,JVM对分配的内存进行划分,分成了5个区域。

1PC寄存器(程序计数器):内存和CPU之间交互

2本地方法栈:虚拟机无法实现,调用操作系统中的功能。eg:window 复制,剪切...,利用这片内存实现。

3方法和数据的共享(方法区):运行时期 class文件进入的地方

4方法栈(java栈):所有的方法运行的时候,进入的内存。eg:mian运行,就会创建一个栈帧,进入方法栈

5堆:存储的容器和对象

我们主要关注3/4//5内存 ,举例main方法运行,内存的变化。

public static void main(String[] args){
    int [] arr = new int[3]
}

  程序运行,class进入内存的方法和数据的共享区域,然后main进入方法栈的(压栈运行)最底部区域,创建数组容器,JVM在堆内开辟空间存储数组容器(new int[3]),返回数组首地址给变量arr(引用类型),也可以说arr指向内存地址(I@766a24)。每次运行,内存地址可能是变化的,每次jvm开辟地址是不定的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值