数组也是一种类型(引用类型),一旦数组的初始化完成,数组在内存中所占的空间被确定下来,因此数组的长度将不可改变。即使把某个数组的元素清空,但它所占的空间依然保留,依然属于该数组,数组的长度依然不变。
java的数组可以存储基本类型的数据,也可以存储引用类型的数据,只要所有的数组元素具有相同的类型即可。
定义数组的语法格式为:type[] arrayname;
数组是一种引用类型的变量,因此在使用它定义一个变量时,仅仅定义了一个引用变量(也就是一个指针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。而且由于定义数组只是定义了一个引用变量,并未指向有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有对数组进行初始化之后才可以使用。
所谓初始化,就是为数组的数组元素分配内存空间,并且为每个数组元素赋初值。
分为两种:1、静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度。
2、动态初始化:初始化时程序员只指定数组长度,系统为数组元素分配初始值。
内存中的数组:
数组引用变量只是一个引用,他可以指向任何有效的内存,只有该引用指向有效内存后,才可以通过该数组来访问数组元素。
与所有引用变量相同的是,引用变量是访问真实对象的根本方式。也就是说,如果我们希望在程序中访问数组对象本身,则只能通过这个数组的引用变量来访问它。
实际的数组对象被存储的堆内存中;如果引用该数组对象的数组引用变量是一个局部变量,那么它被存储的桟内存中。
即数组引用变量时访问堆内存中数组元素的根本方式。
p91 代码
没有多维数组(思想)
待补充。。