JavaSE学习(三)数组

作者 Zhendong Ho 日期 2019-01-21
JavaSE学习(三)数组

数组

数组的概念

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。数组既可以存储基本数据类型,也可以存储引用数据类型。

数组定义的格式

动态初始化:数据类型[] 数组名 = new 数据类型[数组的长度];

静态初始化:数据类型[] 数组名 = new 数据类型[] {元素1, 元素2, …};

数组的初始化

动态初始化

为数组开辟连续的内存空间,并为每个数组元素赋值。

动态初始化,只指定长度,由系统给出初始化值。

class Demo2_Array {
public static void main(String[] args) {
int[] arr = new int[5]; //动态初始化,在内存中开辟连续的5块空间

System.out.println(arr[0]); //系统给出默认初始化值,整数类型的都是0

arr[0] = 10;
System.out.println(arr[0]);
System.out.println(arr); //打印数组名,[I@19bb25a

/*
[代表是数组,几个就代表几维
I代表是int类型
@是固定的
19bb25a代表的是十六进制的地址值
*/
}
}

整数类型:byte、short、int、long默认初始化值都是0。

浮点类型:float、double默认初始化值都是0.0。

布尔类型:boolean默认初始化值为false。

字符类型:char默认初始化值为'\u0000'。char在内存中占两个字节,是16个二进制位。\u0000,每一个0代表的是16进制的0,四个0就是代表16个二进制位。

静态初始化

class Demo6_Array {
public static void main(String[] args) {
//int[] arr = new int[5] { 11, 22, 33, 44, 55}; //错误,不允许动静结合
int[] arr2 = { 1, 2, 3, 4, 5 }; //静态初始化的简写形式
}
}

二维数组

class Demo1_array {
public static void main(String[] args) {
int[][] arr = new int[3][2]; //声明二维数组

//int[] arr[] = new int[3][2]; //另外两种声明二维数组的方法
//int arr [][] = new int[3][2];

//int[] x, y[]; //x是一维数组,y是二维数组

/*
[[I@19bb25a 二维数组的地制值
[I@da6bf4 一维数组的地址值
0 元素值
*/

System.out.println(arr); //二维数组
System.out.println(arr[0]); //二维数组中的第一个一维数组
System.out.println(arr[0][0]); //二维数组中的第一个一维数组的第一个元素
}
}

二维数组遍历

class Test1_Array {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};

for (int i = 0; i < arr.length; i++) { //获取到每个二维数组中的一维数组
for (int j = 0; j < arr[i].length; j++) { //获取每一个一维数组中的元素
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}