java -数组的应用
一维数组
1.数组的定义:
存储多个同一类型元素的容器。
2.数组的格式:
数据类型[] 数组名 = new 数据类型[数组长度];
3.特点:
数组在内存中是一块连续的内存空间,数组中的每一个元素都有一个编号,从0开始到arr.length-1(arr.length-1是指数组中的长度)。
4.什么是数组的动态初始化?
动态初始化是指在定义数组后,数组里面元素默认的初始化值,如下:
整数类型:byte, short, int, long,默认为0;
浮点类型:float, double 默认0.0
布尔类型:boolean 默认false
字符类型:char 默认’\u0000’
<注:’\u0000’是转义字符加上四个0000,两个字节的十六进制位,所以0000代表的是十六个二进制位。>
5.栈和堆
(1)什么是栈?有什么特点?
存储局部变量(定义在方法声明上和方法中的变量)。
特点:先进后出。
方法的调用压栈,执行完毕后就会从内存中弹栈。
**注意:当调用方法结束后,会弹栈,栈中的局部变量随之消失**!
(2)什么是堆?
存储中new出来的对象或数组(默认初始化值)。
两个异常:
A: ArrayIndexOutOfBundsException 数组索引越界异常
B: NullPointerException 空指针
数组中的方法
A遍历:
public static void printArray(int[] arr) {
for (int i = 0; i <= arr.length - 1; i++) {
System.out.println(arr[i]);
}
}
B最值:
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
C翻转:
public static void reverseArray(int[] arr) {
for (int i = 0; i < arr.length/2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = temp;
}
}
D查表法,根据值查索引(待续)。