数组是相同类型的、用一个标识符名称封装到一起的一个 对象序列或 基本类型数据序列。可以使用整型索引值访问它们的元素(“[]”语法是访问数组唯一的方式),并且它们的尺寸不能改变。
对象数组和基本类型数组在使用上几乎是相同的,唯一的区别就是对象数组保存的是引用,基本类型数组直接保存基本类型的值。
数组标识符其实只是个引用,指向在堆中创建的一个真实对象,这个(数组)对象用以保存指向其他对象的引用。
数组定义与初始化
数组定义
定义一个数组,只需在类型名后加上一对空方括号。
int[] a; // 更合理,表明类型是 “一个int型数组”
或者,方括号也可以放在标识符后面。
int a[];
现在拥有的只是对数组的一个引用(已经为该引用分配了足够的存储空间),并没有给数组对象本身分配任何空间。
为了给数组创建相应的存储空间,必须写初始化表达式。
数组初始化
1)花括号初始化
有一种特殊的初始化表达式,由一对花括号括起来的值组成,它必须在创建数组的地方出现(定义的同时进行初始化)
int[] a = {
1,2,3,4};
2)new初始化
如果创建的是基本类型的数组,数组元素中的基本数据类型值会自动初始化成空值(对于数字/字符就是0,对于布尔型就是false)
Random rand = new Random(47); //Random.nextInt()方法会随机返回0到输入参数之间的一个值
int[] a = new int[rand.nextInt(20)]; //定义的同时进行初始化
如果创建的是非基本类型的数组,那就创建了一个引用数组。默认情况下其中所有的引用被自动初始