1.数组的定义:
数组是储存多个变量的容器,被储存的变量的类型要一致
2.数据初始化:
数据初始化定义:为数组分配内存空间,并为数组中的每个元素赋予初始值,数据初始化又分为静态初始化和动态初始化
- 整数:默认值0
- 浮点数:默认值0.0
- 布尔值:默认false
- 字符:空字符
- 引用数据类型:null
动态初始化:
- 数据类型[ ] 数组名 = new 数据类型[数据长度 ] ;
- 只给出长度,由系统给出初始化值
- 举例: int[ ] arr=new int[ 3 ];
静态初始化:
- 数据类型[ ] 数组名={变量1 , 变量2 , 变量…};
- 只给出数值,由系统给出长度
- 举例:int[ ] arr={1,2,3};
等号左边的内容存放在栈内存,等号右边new出来的内容存放在堆内存,栈内存用完就回收,堆内存用完过一段时间再回收,new 出来的对象都有一个地址值,计算机访问时通过地址值来访问对象里的某一个具体的内容
3.如果两个数组指向同一个地址值,一个数组的值发生改变另一个数组的值也会发生相应的改变
4.数组操作常见的两个小问题:
-
索引越界:假设数组里只有1个数,我们拿第一个数的时候写成了arr[ 1 ]而不是arr[ 0 ] ,索引值写错大于实际索引值,我们找不到arr[ 1 ],这时就会报错ArrayIndexOutOfBoundsException:索引越界
-
空指针异常:访问不了堆内存的数据,假设我们有一个arr的数组,我们将null的值赋值给arr,arr=null,null表示不指向任何有效对象,赋值以后对象不能连接到地址值也访问不到数据,这是就会报错NullpointerException:空指针异常
5.遍历数组
通过.length获取数组长度遍历
public class a {
public static void main(String[] args) {
int[] arr= {1,2,3,4};
for(int x=0;x<arr.length;x++) {
System.out.println(arr[x]);
}
}}
6.一个小栗子-----获取最大值和最小值
public class a {
public static void main(String[] args) {
int[] arr= {1,2,3,4};
int max=arr[0];
int min=arr[0];
//最大值
for(int x=1;x<arr.length;x++) {
if(arr[x]>max) {
max=arr[x];
}
//最小值
if(arr[x]<min) {
min=arr[x];
}
}
System.out.println(max);
System.out.println(min);
}}