引用数据类型在使用之前一定要声明和初始化。
声明完成后,JVM还没给元素分配内存空间。
初始化: 静态初始化,动态初始化。
数组是引用数据类型。
一维数组
声明:
元素数据类型 数组变量名
int intArray[] (C语言数组声明方式);
或者 int[] intArray;(java推荐这种,因为它把元素数据类型[]看成一个整体类型,即数组类型)
Date[] dataArray;
初始化:
静态初始化:已知元素内容,确定了长度。
动态初始化:new 运算符分配指定长度的内存空间。
int[] intArray;
intArray = new int[2] //每个元素都是0
intArray[0]=21;
intArray[1]=43;
String[] stringArray=new String[2];//引用类型的数组每个元素内容都是null.
stringArray[0]="Sunshine"
stringArray[1]="Rainny"
因为String是引用类型,所以每个元素保存的是指向实际对象的内存地址。
例子:
数组长度是不可变得,所以不可以通过在一个数组基础上追加另一个数组实现数组合并。
需要new一个新的数组,长度是两个数组的和,然后将两个数组内容导入到新数组。
int[] array=new int[array1.length + array2.length];
for (int i = 0;i < array.length; i++) {
if (i < array1.length){
array[i] = array1[i];
} else {
array[i] = array2[i - array1.length];
}
}
for (int element : array) {
System.out.printf("%d",element);
}
多维数组:
声明,初始化过程同一维数组。
动态初始化:
new 元素数据类型 [高维数组长度] [低维数组长度]
高维数组:最外面的数组
低维数组:每一个元素的数组
eg.创建并初始化一个4X3二维数组:
int[] [] intArray;
int[] [] intArray = new int [4][3];
java.lang包中提供了Math类用于数学计算,其中方法有:sqrt计算平方根,如取绝对值的abs,幂运算的pow等。
不规则数组:
先初始化高维数组,在逐一初始化低维数组。