java中的内存 栈(Stack) 堆(Heap) 方法区(Method Area)

1.栈(Stack):存放的都是方法中的局部变量 。方法的运行一定要在栈当中。
局部变量:方法的参数,或者是方法{}内部的变量
作用域:一旦超出作用域(也就是{}),立刻从栈内存当中消失。
2.堆(Heap):凡是new出来的东西,都在堆当中。
堆内存里的东西都有一个地址值:16进制
堆内存里的数据,都有默认值。规则:
如果是整数 默认为0
如果是 浮点数默认为0.0
如果是字符 默认 ‘\u0000’
如果是布尔 默认为false
如果是引用类型 默认为null
3.方法区(Method Area):储存.class相关的信息,包含方法的信息
4.本地方法栈(Native Method stack)与操作系统相关。
5寄存器(pc Register):与CPU相关

下面为大家举个例子
在这里插入图片描述
new int[3] 要记住 只要new出来的东西都放在堆中 并且生成一个地址如0x666
栈(Stack):存放的都是方法中的局部变量 。方法的运行一定要在栈当中。
int[] array 是方法中的变量 和堆中的地址相同 因为要栈中的变量要通过地址在堆中查找相同地址的内存空间。
mian(String[] args) mian方法是程序的入口,也只有mian方法作为程序的入口
方法区(Method Area):储存.class相关的信息,包含方法的信息。.class里面就包含了mian方法。
当我们改变数组当中的元素时 array[1] =20; array[1] j就会找到 int[] array ,int[] array会根据地址找到堆中相同地址的内存空间 ,根据下标找到对应的数据,把下标为1的这块内存里面的数据改成20;这是一个方法执行过程中java内存中发生的变化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值