java一维数组存中文_从零学java笔录-第24篇 图解一维数组在内存中

原标题:从零学java笔录-第24篇 图解一维数组在内存中

本节主要内容:

1:一维数组在动态赋值在内存中图解。

2:本节总结&下节预告

本文出处:《凯哥陪你学系列之java基础篇.Java基本语法篇》中第24篇 数组3 一维数组在内存中图解

如上面的代码我们先读代码:

第13行 在主函数(main()) 中创建了一个int 类型的一维数组长度等于3

在对应堆、棧中。

1:声明数组&由系统初始化默认值

0ecc5ca4a3b84343cb824223c282c823.png

流程说明:

1.1:系统先执行main方法。所以main方法被压棧到最下面

而int [] arr 又是main方法的局部变量。所以也在棧中(见上图棧区)

1.2:在堆区系统先创建三个连续的区域。对应的内存地址为:[I@39ff48d8

然后给每个对应所以都赋默认值0(见上图堆区)

1.3:系统将1.2中堆区创建的连续空间的地址值给arr

1.4:所以在第14行,我们输出arr在内存中的地址就是[I@39ff48d8

2:动态给数组arr赋值

第16.17.18行操作如下:

408b20ee0b8f636e9e0bbb04eae3a168.png

流程说明:

2.1: 在动态赋值的时候,系统先根据arr对应堆区的地址值找到对应连续空间

2.2:然后根据对应索引替换相应的值

3:输出新赋值的数据:

所以在19、20行输出的实际值就是

在堆区地址值为[I@39ff48d8的连续区域中,下标索引为1和2的值。

从上图中我们可以看到对应的值就是15 和30

所以打印到控制台上的值就是 15 和30

完整图:

ae33663d9985a6b2b494b58d89539ceb.png

思考:

2fcb99b71d1177b2859cab21f6c5bb23.png

cac76fb78f27f2cf9cb6447a3171b8b2.png

以上这些为什么输入的结果如下图:

59e6abbda8febd670b6891b93814ffba.png

图解如下:

407222b4113a6623ca4d228b42fe0fc8.png

5cd416036a184808e9e2458f05ae4777.png

本节总结:

通过本节学习,需要理解:

1:一维数组动态赋值,在内存中是怎么处理的

下节预告:

通过本节学习我们知道了动态给数组赋值,既然有动态赋值,那么是不是也有静态赋值呢?静态赋值又是什么样子呢?请学习下一篇:《从零学java笔录-第25篇 数组4 数组的初始化静态初始化及内存图》

欢迎关注凯哥公众号:凯哥Java返回搜狐,查看更多

责任编辑:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值