1.定义
数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组中的每一个值。例如,如果a是一个整型数组,a[i]jiushi 数组中下标位i的整数。
2.声明数组
在声明数组变量时,需要指出数据类型和数组变量的名字。
可以用下面两种形式生命数组。
int[] a or int a[]
大多数java应用程序员喜欢第一种风格,因为他将类型int[] 与变量名分开了。
需要注意的是
如果创建了一个长度为100个元素的数组,并且试图访问元素a[100](或者任何在0~99之外的下标),程序就会引发“array index out of bounds”异常而终止。
获取数组的个数,用array.length.一旦创建了数组,就不能改变它的大小如果需要在运行过程中扩展数组的大小,就应该使用另一种数据结构-数组列表(array list)
3.数组初始化及匿名数组
在java中,提供了一种创建数组对象并同时赋予初始值的简化书写形式。
int[] a = {1,2,3,4,5};
使用这种方式,并不需要new实例化
匿名数组
new int[]{1,2,3,4,5};
这种写法也可以在不创建新变量的情况下重新初始化一个数组。
例如
a = new int []{4,6,8,0};
4.数组拷贝
关于数组copy,有两种,一种是把一个数据变量copy到可另一个数组变量。
另一种则是将一个数组的所有值copy到一个新的数组中,这个时候需要调用Arrays.copy()方法
int[] in = {1,2,3,4,5};
int[] in2 = in; //第一种copy
int[] in1 = Arrays.copyOf(in,in.length); //第二种copy
System.out.println(in);
System.out.println(in1);
System.out.println(in2);、
结果:
[I@85ede7b
[I@5674cd4d
[I@85ede7b
可以看出in,in2的内存地址是一致的,所以这个姿势两个变量引用同一个值而已。
而in1则和in不同,则是实例化一个新的数组,并引用。
参考了java核心卷1