数组
类型一致的一组数据,相当于集合概念,在软件中解决一组,一堆XX数据时候使用数组。
1、数组变量:是引用类型变量(不是基本变量)引用变量通过数组的内存地址位置引用了一个数组(数组对象),即栓到数组对象的绳子。
eg:数组变量的赋值
int[] ary = new int[3];//ary- - ->{0,0,0}<- - -ary1
int[] ary1 = ary;//ary的地址赋值给ary1,ary与ary1绑定了同一个数组
//ary[1]与ary1[1]是同一个元素,数组变量不是数组(数组对象)
2、数组(数组对象)有3种创建(初始化)方式:
A.new int[10000]给元素数量,适合不知道具体元素,或元素数量较多时
B.new int[]{3,4,5}不需要给出数量,直接初始化具体元素适合知道数组的元素。
C.{2,3,4}静态初始化,是B简化版,只能用在声明数组变量的时候直接初始化,不能用于赋值等情况。
eg:数组初始化
int[] ary1 = new int[]{2,3,4};//创建数组时直接初始化元素
int[] ary2 = {2,3,4};//数组静态初始化,只能在声明变量的同时直接赋值
//ary2={4,5,6};//编译错误,不能用于赋值等情况
ary2 = new int[]{4,5,6};
3、数组元素的访问:
A.数组长度:长度使用属性访问,ary.length获取数组下标。
B.数组下标:范围:0~length-1就是[0,length),超范围访问会出现下标越界异常。
C.使用[index]访问数组元素:ary[2]。
D.迭代(遍历):就是将数组元素逐一处理一遍的方法。
4、数组默认初始化值:根据数组类型的不同,默认初始化值为:0(整数)、0.0(浮点数)、false(布尔类型)、\u0000(char字符类型,显示无效果,相当于空格,编码为0的字符,是控制字符,强转为int时显示0)、null(String类型,什么都没有,空值的意思)。
5、数组的复制:数组变量的赋值,是并不会复制数组对象,是两个变量引用了同一个数组对象。数组复制的本质是创建了新数组,将原数组的内容复制过来。
6、数组的扩容:创建新数组,新数组容量大于原数组,将原数组内容复制到新数组,并且丢弃原数组。简单说:就是更换更大的数组对象。System.arraycopy()用于复制数组内容,简化版的数组复制方法:Arrays.copyOf()方法。