《零基础学 Java》 FAQ 之 17- 怎么理解 Java 中的数组

发布于: 15 小时前
《零基础学 Java》 FAQ 之 17-怎么理解Java中的数组

来自@Rˋ﹏搁浅ゝ 的问题,从https://time.geekbang.org/course/detail/181-96370 (27 | 认识变量和数组(上))提出的问题。

int book =new int[10];

老师按照本子来理解,book指向一个长度为10的int数组,如果说book赋值为35,那么本子第35页就是这个数组的名!往后数(第三声)十页就是数组的实!

我这么写好了。

int b =new int[10];

我不用book了,因为跟本子容易混淆,我用b来代替。

可以这么理解这个过程。b也是本子里的一页,比如说b本身是在第3页,那么b就代表第3页,第3页就是b,他们现在是一个东西。

好,那么接着看new int[10];,new int[10]就是说,创建了一个数组的实体,它是连续的10张纸,这10张纸的第一张的编号是25,那么这个实体就是第25到34这10张纸的整体。

然后再看这个等号,等号就是赋值操作,给b赋值就是往b代表的纸上写内容。

左边是一张纸b,右边是一沓纸,那么怎么赋值呢?其实这个赋值操作呢,是把右边这一沓纸的 第一张纸的 地址 取出来,给了b,也就是25。所以这行执行完毕后:

b=就代表第3张纸

程序里有一沓纸,一种10张,被捆绑在了一起作为一个整体,也就是数组的实。这个实体的第1张纸的页码是25

第3张纸上上的内容被写成了数组实体的第一张纸的页码,也就是25。


这篇文章来自极客时间推出的《零基础学Java》中的FAQ。除了在每节视频课下方回答大家的问题之外,针对大家提出的优质问题或者普遍问题,如果需要更大篇幅的文章解答,则会在FAQ中以文章的方式给出回答。带你零基础入门,夯实Java,课程地址:https://time.geekbang.org/course/intro/181

发布于: 15 小时前 阅读数: 6
用户头像

臧萌

关注

一线程序员,偶尔写写字 2017.10.20 加入

《零基础学 Java》 视频课作者 《Java入门1·2·3》作者

评论

发布
暂无评论
《零基础学 Java》 FAQ 之 17-怎么理解Java中的数组