PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 就是这么个感觉。组合成一个复杂的东西,然后把这个复杂的东西当作一个整体,再去在更高的层面组合成更复杂的东西。 就好像水泥钢筋和砖头,分别都是独立的单位,他们一起组成墙;然后把墙看成一个独立的单位,和别的单位一起,组成建筑;然后把建筑看成一个独立的单位,和花园,道路等等可以组成园区。
作者回复: 拿得花不老少钱买本子,哈哈。理解了就好,理解数组了就算是程序员了。 我最多只能操控到三维数组,再多脑子就转不过来了,得上辅助,比如用纸写写画画。对于Java语言善于解决得问题领域来说,其实很少会用到超过二维数组。否则很可能是设计上有问题。 再多说一句,Java数组的事实就是,除了一维数组以外(当然一维数组也可以是引用),高维数组都是指向别的数组的引用,引用指向的是下一维度的数组实体,当然下一维度的数组可能也还非一维的,那么继续是引用,继续指向别的数组。
作者回复: 第二章,43节
作者回复: 只是引用的名字不一样,一个叫做in,一个叫做scanner,使用的时候是一样的。
作者回复: 索引是从9开始的。这里的in.nextInt是读取键盘输入。键盘输入1,计算机要转成0,代表第一个元素,所以减一
作者回复: 是的,多位数组里高维的值就是到低维数组的引用,对长度没要求
作者回复: 不可以。如果有这个需要,可以考虑用数字类型的封装类,也就是Integer、Double这些。然后声明数组类型为Number或者直接就是Object
作者回复: 是的,而且后期通过赋值,可以让不同的行可以有不同的列的数量。
作者回复: int [] = new int[5]是创建一个数组,然后还需要循环给数据元素赋值。int[] = {1,2,3,4,5}是创建+赋值。 最后的结果是一样的,没区别。
作者回复: 棒棒!