package com.zhu.array; public class ArrayDemo06 { public static void main(String[] args) { /** * 【数组的四个基本特点】 * 1、其长度是确定的。数组一旦被创建,它的大小就是不可改变的 。 * 2、其元素必须是相同类型,不允许出现混合类型。 * 3、数组中的元素可以是任何数据类型,包括基本类型和引用类型。 * 4、数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 * 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,【数组对象本身是在堆中的。】 */ /** * 【数组边界】 * 1、下标的合法区间: [0, length-1],如果越界就会报错: * public static void main(String[] args) { * int[] a = new int[2]; * System.out.println(a[2]); * } * 2、【ArraylndexOutOfBoundsException: 数组下标越界异常!】 * * 3、小结: * a、数组是相同数据类型(数组类型可以是任意类型)的有序集合 * b、数组也是对象。数组元素相当于对象的成员变量 * c、数组长度的确定,不可变的。如果越界,则报: ArraylndexOutOfBounds */ } } package com.zhu.array; public class ArrayDemo08 { public static void main(String[] args) { int[] arrays = {1, 2, 3, 4, 5, 6, 7, 8, 9}; // // jdk1.5以上版本,新的循环,不再使用下标 (适合打印输出) 操作里面的元素就不适合 // for (int array : arrays) { //增强型for循环, arrays代表一个数组, int array这个变量 代表数组里面的【每一个元素】 省去了数组的下标 // System.out.println(array); // // } // printArray(arrays); int[] reverse = reverse(arrays); printArray(reverse); } //打印数组元素 public static void printArray(int[] arrays){// 数组可以封装成一个参数 for (int i = 0; i < arrays.length; i++) { System.out.print(arrays[i]+ " "); } } //反转数组 private static int[] reverse(int[] arrays) { int[] result = new int[arrays.length]; // 反转操作 for (int i = 0,j = result.length-1; i < arrays.length; i++ ,j--) { result[j] = arrays[i]; } return result; } }