1、数组
1.1 数组的静态初始化
1.2 数组定义格式
1.2.1 数组定义
注意:这种定义格式,只是数组类型的变量而已,没村中还没有创建出数组容器。
1.2.2 数组的静态初始化
//1、完整格式
int[] arr = new int[]{11, 55, 66};
//2、简化格式
int[] arr2 = {11,55,66};
1.2.3 打印数组名
public static void arrayTest2(){
//1、完整格式
int[] arr = new int[]{11, 55, 66};
//2、简化格式
int[] arr2 = {11,55,66};
System.out.println(arr);
System.out.println(arr2);
}
输出:
[I@1b6d3586
[D@4554617c
打印数组名会输出如下所示:
[I@1b6d3586
那表示什么意思呢?
答:
@:分隔符
[:当前空间,是数组类型的
I:当前数组类型,是int类型
1b6d3586:数组的16进制内存地址
总之:这一串就表示 数组在内存中的16进制地址
1.3 数组元素的访问
1.4 数组遍历操作
案例:
public static void getMax(){
int[] arr = {5,44,33,55,22};
int maxValue = arr[0];
for (int i = 0; i < arr.length; i++) {
if(maxValue < arr[i]){
maxValue = arr[i];
}
}
System.out.println("最大值为:" + maxValue);
}
1.5 数组的动态初始化
1.5.1 定义
动态初始化后的初始值,随着类型的不同而不同:
1.5.2 两种初始化的区别
1.6 数组内存图
1.6.1 Java内存分配介绍
1.6.2 两个数组指向相同内存图
1.7 数组中常见问题
1.7.1 索引越界异常
1.7.2 空指针异常
2、二维数组
2.1 二维数组的静态初始化
package com.itheima.array2;
public class ArrayDemo1 {
public static void main(String[] args) {
int[][] arr = {
{11,55,66},
{33,44,77}
};
System.out.println(arr);
System.out.println(arr[1]);
}
}
输出:
[[I@1b6d3586
[I@4554617c
注意:二维数组在存储时,其实存储的是一维数组的地址值。
2.2 二维数组的访问
2.3 二维数组的遍历
public static void printArr(int[][] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
}
}
2.4 二维数组的动态初始化
package com.itheima.array2;
public class ArrayDemo2 {
public static void main(String[] args) {
int[][] arr = new int[4][5];
initArray(arr);
}
public static void initArray(int[][] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j] + " ");
}
}
}
}
输出:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
默认值是 0
问题:
答:可以的