1、创建数组:
int a [] = new int [3];
此时内存如下图:
变量a会指向一个数组大小为3的空间,并且数组初始值和数组类型有关,如果是int,那么就是0。如果是 double 那么就是0.0。
数组的引用:
数组名[下标] 比如访问a数组的第三个元素 a[2];
快速入门案列:
package HanShunPing;
import java.util.Scanner;
public class arryTwo {
public static void main(String[ ] args) {
// 1.创建一个double数组,大小5
double scores[ ] = new double [5];
// 2.循环输入
// scores.length表示的是数组的长度
// sysout 是System.out.println();的快捷代码 大家可以记下
Scanner myScanner = new Scanner(System.in);
for(int i = 0;i<scores.length;i++) {
System.out.println("请输入第"+(i+1)+"个元素的值");
scores[i] = myScanner.nextDouble();
}
System.out.println("===数组元素的 值/情况如下:==");
for(int i = 0;i<scores.length;i++) {
System.out.println("第"+(i+1)+"个元素的值="+scores[i]);
}
}
}
使用方法二
先声明数组 :
语法:数据类型 变量名 [] 或者 数据类型 [] 变量名
int a[] 或者 int [] a;
然后在创建数组:
数组名 = new 数据类型[大小]
a = new int [10];
示例:
package HanShunPing;
import java.util.Scanner;
public class arryTwo {
public static void main(String[ ] args) {
// 1.创建一个double数组,大小5
double scores [ ]; /*此时的scores 是空的 因为还没有分配空间,只是取个名字*/
scores = new double [5];/*此时的scores 分配了空间,可以放东西,如果不new一个空间的话,就会报错 空指针异常*/
// 2.循环输入
// scores.length表示的是数组的长度
// sysout 是System.out.println();的快捷代码 大家可以记下
Scanner myScanner = new Scanner(System.in);
for(int i = 0;i<scores.length;i++) {
System.out.println("请输入第"+(i+1)+"个元素的值");
scores[i] = myScanner.nextDouble();
}
System.out.println("===数组元素的 值/情况如下:==");
for(int i = 0;i<scores.length;i++) {
System.out.println("第"+(i+1)+"个元素的值="+scores[i]);
}
}
}
数组使用的注意事项和细节:
- 数组是多个相同类型数据的组合,实现这些数据的统一管理。
- 数组中的元素可以是任何数据类型,包括基本数据类型和引用类型,但是不能混用
- 数据类型:
4.数组创建后,如果没有赋值,有默认值
int | short | byte | long | float | double | char | boolean | string |
0 | 0 | 0 | 0 | 0.0 | 0.0 | \u0000 | flase | null |
5.使用数组的步骤
(1)声明数组并开辟 空间
(2)给数组各个元素赋值
(3)使用数组
二、数组赋值的机制
基本数据类型赋值,这个值是具体的数据,这些数据之间不会相互影响.
代码如下:
public static void main(String[ ] args) {
int n =1;
int a =2;
n =a;
System.out.println(n);
}
结果:n=2;
数组在默认情况下时应用传递,赋的值是地址,并且地址只有一个。
代码如下 :
public static void main(String[ ] args) {
int [ ] arry1 = {1,2,3} ;
int [ ] arry2 = arry1;
arry2 [ 0] = 10;
for(int i =0;i<arry1.length;i++) {
System.out.println(arry1[i]);
}
}
结果如下:
可见把arry1赋值给arry2时,赋值的是一个地址,并且地址只有一个,所以更改arry2的值得时候,arry1也会变化。