声明、初始化
- 声明:int[] ids;——->int ids[]也可,不报错。
String[] names;
- 静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003,1004};
- 动态初始化:数组的初始化和数组元素的赋值操作分开进行
names = new String[5];//[]中可以是变量
- 声明与初始化合并:
Int[] ids = new int[]{1001,1002,1003,1004};
Int[] ids ={1001,1002,1003,1004};--->类型推断
String names = new String[5];
数组元素的引用
- 定义并用运算符new为之分配空间后,才可以引用数组中的每个元素;
- 数组元素的引用方式:数组名[数组元素下标]
- 数组元素下标可以是整型常量或整型表达式。
如a[3] , b[i] , c[6*i];
- 数组元素下标从0开始;长度为n的数组合法下标取值范围: 0 —>n-1;
如int a[]=new int[3]; 可引用的数组元素为a[0]、a[1]、a[2]
- 每个数组都有一个属性length指明它的长度。(可用于遍历数组作为循环条件)
例如:a.length 指明数组a的长度(元素个数)
- 数组一旦初始化,其长度是不可变的
数组元素的默认初始化值
- 数组元素是整型:0
- 数组元素是浮点型:0.0
- 数组元素是char型:0或’\u0000’,而非’0’
数组元素是boolean型:false
数组元素是引用数据类型:null
一维数组的内存解析
数组的赋值与复制
赋值:
int[] array1,array2;
array1 = new int[]{1,2,3,4};
array2 = array1;
将array1保存的数组的地址值赋给了array2,
使得array1和array2共同指向堆空间中的同一个数组实体。
复制:
array2 = new int[array1.length];
for(int i = 0;i < array2.length;i++){
array2[i] = array1[i];
}
通过new的方式,给array2在堆空间中新开辟了数组的空间。
将array1数组中的元素值一个一个的赋值到array2数组中。