传智播客java基础班冯佳老师整理,还会持续更新,请关注冯佳老师的微
博fengjia_2553868@qq.com
1,数组概述及格式
- 数组:同一种类型数据的集合。其实数组就是一个容器。
- 只要是容器,就得重点掌握。
- 数组的好处
- 可以自动给数组中的元素从0开始编号,方便操作这些元素。
- 数组的定义格式
-
A:当不明确数组中的元素时,动态初始化 举例 :
B:当明确数组中的元素时,静态初始化 举例 :12int
[] arr =
new
int
[
3
];
arr[
0
] =
3
;
12int
[] arr =
new
int
[]{
1
,
2
,
3
,
4
,
5
};
int
[] arr = {
1
,
2
,
3
,
4
,
5
};
- 什么时候使用数组?
- 当要操作的同种数据类型的数据是多个的时候,你就得想着先把这些数据用数组进行存储。
- A:栈
- 存储的是局部变量(在函数中定义的变量)。
- 变量被使用完后,立即自动释放。
- B:堆
- 存储的是实体(数组和对象)。
- 实体:new出来的东西,可以存放很多数据的东西。
- 堆内存数据的特点
- 每个实体都有内存地址
- 堆内存中的变量都有默认初始化值
-
1234
int
-->
0
double
-->
0.0
boolean
-->
false
char
-->
'\u0000'
空字符,unicode编码。
-
- 当实体不在被使用的时候,会在jvm空闲的时候,通过java垃圾回收机制使其自动释放。
- C:方法区 后面讲。(static)
- D:本地方法区 调用是Windows系统底层资源,我们不用考虑。
- E:寄存器 和CPU相关。我们不用考虑。
- A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。
- ArrayIndexOutOfBoundsException
举例
1
2
|
int
[] arr =
new
int
[
3
];
System.out.println(arr[
3
]);
|
- B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。
- NullPointerException
举例
2
3
|
int
[] arr =
new
int
[
3
];
arr =
null
;
System.out.println(arr[
1
]);
|
- 数组遍历
- 数组获取最值
- 基本查找
- 数组的参数传递
- 数组反转
- 查表法(星期的示例)
- 格式1:int[][] arr = new int[3][2];
- A:定义了名称为arr的二维数组
- B:二维数组中有3个一维数组
- C:每一个一维数组中有2个元素
- D:一维数组的名称分别为arr[0], arr[1], arr[2]
- arr:二维数组名
- arr[1]:二维数组中的第二个一维数组名
- arr[1][1]:二维数组中的第二个数组的第二个元素
- E:给第一个一维数组1脚标位赋值为78写法是:arr[0][1] = 78;
- 格式2:int[][] arr = new int[3][];
- A: 二维数组中有3个一维数组
- B: 每个一维数组都是默认初始化值null
- C: 可以对这个三个一维数组分别进行初始化
- arr[0] = new int[3];
- arr[1] = new int[5];
- arr[2] = new int[7];
- 格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};arr[2].length
- A:二维数组有3个一维数组。
- B:
- 第一个一维数组有3个元素
- 第二个一维数组有2个元素
- 第三个一维数组有4个元素
- 二维数组的遍历
- 123456789
int
[][] arr2 =
new
int
[
2
][
3
];
public
static
void
printArray2(
int
[][] arr2){
for
(
int
i=
0
; i<arr2.length; i++){
for
(
int
j=
0
; j<arr2[i].length; j++){
System.out.print(arr2[i][j]+
" "
);
}
System.out.println();
}
}
- 二维数组的应用
-
求一年的销售总额。
123456789public
static
void
printArray2(
int
[][] arr2){
int
sum =
0
;
for
(
int
i=
0
; i<arr2.length; i++){
for
(
int
j=
0
; j<arr2[i].length; j++){
sum = sum + arr[i][j];
}
System.out.println(
"sum ="
+ sum);
}
}