数组的声明和创建
-
数组的声明
//三种方式 int[] array; int []array; int array[];
注意:
1) 声明时,[]内必须为空,因为此处[]只代表其为数组类型
2) 单纯声明并不对数组分配内存地址和空间 -
数组的创建
array = new int[10];
注意:
1) 创建数组时,[]内必不为空,即创建数组对象时,必须指定其元素个数, [] 里面为常量或者常量表达式
2) 只有在创建数组后,才会对数组分配内存地址和空间 -
声明并创建
int[] array = new int[10]; int[] array = {1,2,3}; //此时语法上,数组的声明和定义不能分开; //[]必须没有数值 int[] array = new int[] {1,2,3};
使用数组的注意事项
- 数组在java中以对象形式存在,数组一旦实体化后,如果不赋值,则系统默认给数组中所有元素赋 0 0.0 false null
- 数组是final类。其中数组长度length为整数型常量,一旦数组被建立,length即固定。如果在被调用的函数中定义数组,其长度可以是变量或非常量表达式,但是数组长度一旦赋值,则数组长度固定
- 数组名指向第一个元素
- JAVA没有多维数组,所谓的二维数组,其实是数组元素是引用(地址)而已,这些引用分别指向各自的数组,并且没有更高维(大于二维)的数组
也就是说,二维数组 int[][] arr = new int[m][n];
实际上是(m+1)个数组,1个数组是引用型数组,其维度为m,m个数组是基本类型数组,其维度均为n
其中,arr是1个一维数组的引用,arr[0]……arr[m-1]是m个n维数组的引用 - 数组类型为对象时,其元素可以是这个类及其子类
- 二维数组定义时,int[][] arr = new int[m][n]; m不能省略,n可以省略
m表示引用的个数,n若存在,则n表示所有引用指向的数组长度相同,均为n
n若不存在,则每个引用指向的数组长度可以不同
其他定义方式见函数array() - System.out.println(arr);执行后得到 [I@c17164:
@前面[表其为数组引用,I代表数组类型为整形,@后面一串数字为用来进行哈希计算的地址值