====== 数组的使用======
一、三种使用方法
1、使用方式一:动态初始化
格式:数据类型[ ] 变量名 = new 数据类型[大小]
例:double[] hens = new double[5];
使用方式一:动态初始化
double[] hens = new double[5];
Scanner myScanner = new Scanner(System.in);
for(int i = 0 ; i < hens.length ; i++){
System.out.println("请输入第"+ (i+1) +"个鸡的重量");
hens[i] = myScanner.nextDouble();
}
System.out.println("========输出=========");
for(int i = 0 ; i < hens.length ; i++){
System.out.println("第"+ (i+1) +"个鸡的重量为:" + hens[i]);
}
2、使用方式二:先声明再初始化
格式:数据类型[ ] 变量名;
变量名 = new 数据类型[大小 ];
例:double[] hens;
hens = new double[5];
double[] hens ;
Scanner myScanner = new Scanner(System.in);
hens = new double[5];
for(int i = 0 ; i < hens.length ; i++){
System.out.println("请输入第"+ (i+1) +"个鸡的重量");
hens[i] = myScanner.nextDouble();
}
System.out.println("========输出=========");
for(int i = 0 ; i < hens.length ; i++){
System.out.println("第"+ (i+1) +"个鸡的重量为:" + hens[i]);
}
3、使用方式三:使用静态初始化(知道数值且数量较少时使用)
格式:数据类型[ ] 变量名 = {};
例:double[ ] hens = {2,3,4,5,6};
double[] hens = {2,3,5,7,9};
System.out.println("========输出=========");
for(int i = 0 ; i < hens.length ; i++){
System.out.println("第"+ (i+1) +"个鸡的重量为:" + hens[i]);
}
=注意事项===
**一、**数组是多个相同类型数据的组合,实现对这些数据的统一管理
**二、**数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
**三、**数组创建后,如果没有赋值,有默认值int 0, short 0, byte 0, long 0, float 0.0,double 0.0, char \u0000,.boolean false,String null
四、使用数组的步骤
1.声明数组并开辟空间
2给数组各个元素赋值
3使用数组
五、数组的下标是从0开始的。
六、数组下标必须在指定范围内使用,否则报:下标越界异常,比如
int arr=new int[5];则有效下标为0-4
七、数组属引用类型,数组型数据是对象(object)
数组赋值机制==
一、变量(基本类型)的赋值机制(值传递)
二、数组(引用数据类型)的赋值机制(地址传递)

如图:
1、在定义基本数据类型时:
int n1 = 10 ;
int n2 = n1 ;
n2 = 80 ;
此时n2 = 80 ,而 n1 = 10;n1的值并不会改变
相当于重新申请了一块空间。
2、在定义引用数据类型时:
int [ ] arr1 = { 1, 3, 5} ;
int [ ] arr2 = arr1 ;
arr2[0] = 10 ;
而此时当把 arr1 赋值给 arr2 时,是 arr2 指向了 arr1 的内存地址,相当于 arr1 和 arr2 指向了同一块内存地址,此时修改 arr1 里的值 arr2 也同时会修改。