数组
特点
- 数组是一种引用数据类型
- 数组中有多个数据,类型必须统一
- 数组的长度在程序运行的过程中不可以改变
数组的操作
- 初始化
- 动态初始化(指定长度)
数据类型[] 数组名 = new 数据类型[数组长度];
- 静态初始化(指定内容)
数据类型[] 数组名 = new 数据类型[] {5,14,25};
数据类型[] 数组名 = {5,14,25};
静态初始化省略格式不可以分两步写。
- 动态初始化(指定长度)
- 使用
动态初始化时,数组元素的默认值为:- 整数类型默认为0
- 浮点类型默认为0.0
- 字符类型默认为’\u0000’
- 布尔类型默认为false
- 引用类型默认为null
注意事项:静态初始化其实也有默认值的过程,只不过自动被大括号内的内容赋值了。
Java内存划分
- 栈(Stack):存放方法中的局部变量。方法的运行一定在栈中运行。
- 堆(Heap):**凡是new出来的东西,都存放在堆中。**堆内存中的东西都有一个地址值。且都有默认值,参照上面数组默认值。
- 方法区(Method Area):存储.class相关信息,包含方法的信息。
- 本地方法栈(Native Method Stack):与操作系统有关。
- 寄存器(PC Register):与CPU有关。
常见问题
- 数组索引越界异常(ArrayIndexOutofBoundsException)
- 空指针异常(NullPointerException)
public class ArrayException{
public static void main(String[] args){
int array[]=null;
System.out.println(array[0]);
}
}
数组长度
属性:length
数组长度在程序运行期间不可改变
数组的遍历
循环:数组名.fori
数组的练习
- 数组中的最大值
- 数组的反转
数组作为参数和返回值
- 数组作为参数时,传递的是数组的地址值。
- 返回值只能有一个,如果有多个结果需要返回,则可以使用数组作为返回值,返回的也是地址值。