1、数组的分类,特点
数组是一种有序集合
数组内的元素必须是同一元素类型,在内存中连续分布
数组名只通过定义命名/修改,与内元素无关
数组内元素都具有下标,从0开始,通过 数组名[下标位置] 访问
数组的 长度 在定义时表明,不可修改
存储方式:
栈内存:定义变量的时候就分配内存,栈内存为临时空间,每一个线程有独立栈空间,也只能当前线程调用,栈内存会自动分配和回收,(系统自动)调用时候分配,结束回收,大小固定
堆内存:new,创建堆内存的时栈内存里会有一个特殊变量(指针)对应,这个特殊变量是内容在内存中的地址,通过该地址方位对应访问内存中的数组或对象
2、赋值
直接赋值
int [] arr = {1,2,3,6,9,5,};
定义了一个名为arr的数组,有6个元素,且对6个元素赋值
先声明后赋值
int [] arr = new int[6];
声明一个名为arr长度为6的数组,元素默认值0,等待赋值
3、下标读取
System.out.println(arr[0]);
读取arr的第0个变量
4、方法
获取列表长度:System.out.println(数组名.length);
获取数组哈希地址:System.out.println(数组名.hashCode());
获取数组地址:System.out.println(数组名);
方法System.out.println(数组名);的输出 [ 表示是数组 I表明为int类型 @后面为16进制储存地址
转为10进制就是哈希地址
克隆
直接赋值克隆
定义一个新的数组并赋值为要克隆的数组
特点:
因为array是直接接收arr的值,可以看作是两个链接读取同一个内容,所以两个数组的占用的内存的位置是一样的,所以无论是arr还是array值被改变时两个的值都会改变
真·克隆
方法:定义一个数组是值为 数组名.clone()
特点
这种方法相当于创建了一个新的数组,不过值是使用与原来数组的最初值,所以两个数组的储存位置不相同,在后续修改初始数组的时候克隆出来的数组也不会随之改变。
遍历数组
遍历数组分为有下标的使用fori方法和无下标使用foreach方法两种
有下标fori方法这只能遍历循环,无法进行操作
无下标的foreach方法可以进行操作