1.什么是数组:数组(array)是用于存储多个相同类型数据的存储模型
2.数组的定义格式:
a.数据类型 [] 变量名 //int[] arr 一般使用这种
b.数据类型 变量名[] //int arr[]
3.数组初始化:Java中的数组必须初始化才能使用,初始化就是为数组中的元素分配内存空间,并为每个元素赋值
动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值(整数默认值为0,浮点数是0.0,布尔值是false,字符是空字符,引用数据类型是null)
格式:数据类型[] 变量名 = new 数据类型[数组长度]; //int[] arr = new int[3];
静态初始化:初始化时指定每个元素的初始化的值,有系统决定数组长度
格式:数据类型[] 变量名 = new 数据类型[]{值1,值2,值3....}; // int[] arr = new int[]{1,2,3};
简化格式:数据类型[] 变量名 = {值1,值2,值3....}; // int[] arr ={1,2,3};
4.java中的内存分配
java程序在运行时,需要在内存中分配空间,为了提高运行效率,就对空间进行了划分,不同区域有不同的数据处理方式和内存管理方式
栈内存:存储的是临时变量或局部变量,即等号左边,使用完毕会立即消失(客栈,临时使用)
堆内存:堆内存存储的是new的内容(实体、对象),都会有一个地址值,即等号右边,使用完毕会在垃圾回收器空闲时进行回收
5.数组容易出现的两个问题
1.索引越界:访问数组不存在的索引
2.空指针异常:当数组的地址值发生改变{arr=null},即不再指向原先的堆内存,再次强行访问就会出现空指针异常(NullpointerException)
6.数组常见操作
遍历:for循环遍历
int[] arr = {...};
for(int x = 0;x < arr.length;x++){ //数组名.length表示数组长度,即数组中的元素个数
}
最值:
最大值例子:int[] arr = {11,22,23,64,58};//定义一个数组
int max=arr[0]; //一般用arr[0]作为max的初始值
for(int x = 1;x < arr.length;x++){
if(arr[x] > max){
max = arr[x];
}
}