###理解数组
Java的数组要求所有的元素为相同数据类型。既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有元素的类型相同就可以。
一旦数组的初始化完成,数组在内存中占用的空间就被固定下来,因此数组长度不可变,即使把某个数组元素的数据清空,但数据占用的空间依然被保留。
数组也是一种数据类型,本身是一种引用类型。例如int是基本类型,但int[]就是一种引用类型。
###定义数组
type
数组是一种引用类型的变量,因此在定义一个数组变量时,仅仅表示定义了一个引用变量(也就是一个指针),但这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组 的长度。因为没有任何有效内存,这个数组也不能使用,只有初始化之后才能使用。
(1)数组初始化
数组初始化,就是为数组元素分配内存,并为每个数组元素赋初值。
//静态初始化格式
(2)动态初始化
//动态初始化格式
###使用数组
object
###foreach循环
String
###数组在内存中的存在形式
只要类型互相兼容,就可以让一个数组变量指向另一个实际的数组,这种操作会让人产生数组长度可变的错觉。如下代码所示:
package
运行上述代码,可见数组b的长度最初为4,后面变成了3。好像数组长度是可变的,但这只是一个假象。因为只是引用发生了变化,数组本来的长度并没有变。
###基本数据类型数组的初始化
比较简单,不再赘述
###引用类型数组的初始化
package
上述程序的内存图解如下:
###没有多维数组
Java支持多维数组的语法,但是从数组底层运行机制上来看,没有多为数组。
二维数组的定义程序如下:
package
内存图为:
二维数组初始化的几种形式
//先初始化行,后初始化列