Java中一维数组的内存图解

Java中内存图:栈内存、堆内存、方法区。

栈内存:保存的是执行方法、运行方法(例如主方法)。

堆内存:保存的是具体的对象、数组等。
		代码中带 **new**的就会在堆内存中开辟空间。

方法区:加载某一个类的.class字节码文件。

在这里插入图片描述
在方法区加载编译后的Demo01.class字节码文件

将main方法加载到栈内存中,执行int [ ] arr = ,此时有new,在堆内存中开辟一块空间,创建一个数组(5个连续的空间),数组的索引为0-4。

开辟空间后,数组会生成一个在内存当中的地址值,并把地址值赋值给arr。即可通过此地址值找到对应的内存空间。打印arr就会显示内存的地址值。( [ 代表一维数组,I 代表当前数据类型,@为固定连接符号,后面为十六进制的内存地址值)。

int默认的初始化值为0,此时为数组进行赋值,通过地址值找到这一块空间,通过0索引找到这一块,将默认的初始化值替换即可。

在这里插入图片描述
数组名称不再记录任何地址值时,无法操作那一块数组空间。即将数组的引用置为空(NULL)
即 arr = NULL,此时继续访问数组中的元素就会出现错误NullPointerException(空指针异常)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值