一、数组的定义与初始化
数组是一种类型(引用类型),一个数组中只能存储一种数据类型的数据,其定义方式通常为 type[] arrayName,定义数组时不能指定数组长度,其初始化有两种方式:静态和动态
静态初始化是由程序员显示指定每个数组元素的值,有系统决定其长度
int[] array={5,6,7,8} ; Object[] objArr=new String[]{"Java","作者"};
动态初始化是由程序员指定数组长度,系统分配其初始值
int[] array=new int[4]; Object[] objArr=new String[2];
系统自动为数组分配值的规则:
数组元素的类型是基本类型中的整形(long,byte,short,int),则数组元素值为0
数组元素的类型是基本类型中的浮点型(float,double),则数组元素值为0.0
数组元素的类型是基本类型中的字符型(char),则数组元素值为'\u0000'
数组元素的类型是基本类型中的布尔型(boolean),则数组元素值为false
数组元素的类型是引用类型(类、数组、接口),则数组元素值为null
foreach循环的语法格式:for(type variableName : array | collection){ //循环变量variableName自动迭代访问每个元素,充当一个临时变量,保存遍历的数组元 素值,但是原本的元素值并不改变,所以一般不对其循环变量赋值,当希望改变数组元素值时,不适用foreach循环方法}
二、内存中的数组
数组变量和数组元素在内存中都是分开存放的,数组变量(保存的是数组对象的地址)存放在栈内存中,而实际的数组对象存在堆内存(即运行时数据区)中,所有的局部变量都是保存在栈内存中
二、引用数据类型
除了基本数据类型之外的都是引用类型,引用数组的数组元素是引用(二维数组,可以看做是一维数组)
初始化多维数组时,可以只指定最左边维的大小(也可以指定每一维的大小)