数组的创建
//数组的第一种静态创建
int[] array1 = {1, 2, 3, 4, 5};
//第二种静态创建
int[] array2 = new int[]{6, 7, 8};
//第三种动态创建
int[] array3 = new int[4];//此方法后续可以动态的为该数组赋值
数组的一些特征和API:
数组的下标从0开始,数组的长度 数组名.length,数组下标越界 数组一单创建,长度不可以改变,数组长度允许为0,即空数组 数组的创建过程: 根据数组的类型与长度开辟一块连续的内存空间 对数组中的每个元素进行初始化,比如int数组的默认值就是0 生成数组唯一的一个地址值,交给应用类型变量a来保存 后续可以根据数组的下标再来操作数组中的具体元素 注意: 数组名a这个变量,保存的是数组的地址,不是数组中的具体元素
// int i1 = array2[4];
// System.out.println(i1);ArrayIndexOutOfBoundsException 数组下标越界异常
System.out.println(array1);//[I@6d6f6e28 输出的是地址值
System.out.println(Arrays.toString(array2));//[6,7,8]输出的是数组
System.out.println(Arrays.copyOf(array3,0));//数组的扩容和缩容,是新复制了数组进行修改,不改变原数组的长度
System.out.println(Arrays.copyOfRange(array3,0,2));//选数组下标为0-2的复制
System.out.println(array1[0]);//输出下标为1的数为0
/**
* 高效for循环
* for(遍历到的元素的类型 遍历到的元素的名字 :要遍历的数组/集合名){
* 循环体)
* 优点:写法简单,效率高
* 缺点:只能从头到尾的遍历数据,不能进行步长的选择
*/
for (int a :
array1) {
System.out.println(a);
}
/**
* 注意1:写法小窍门:从哪开始 到哪结束 循环变量如何变化
* 注意2:for循环能够执行多少次,取决于循环变量可以取到几个值
* 2.嵌套for循环
* 外层循环控制的是轮数,内层循环控制的是每一轮中执行的次数
* 对于图形而言,外层循环控制的是行数,内层循环控制的是列数
*/
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
}