数组的内存分析和3种初始化
- 数组的内存分析
-
静态初始化
public static void main(String[] args) { //静态初始化 int[] a= {1,2,3,4,5,6,7,8}; System.out.println(a[0]); //Man[] mans={new Man(),new Man()};//引用类型的数组,看不懂没关系,先打着 for (int i = 0; i <= a.length; i++) {//一但小于等于就会导致数组越界 ,就会报 java.lang.ArrayIndexOutOfBoundsException: 8 System.out.println(a[i]); //因为数组的下标是0-7,没有8,所以不能小于等于 //反过来说,小于等于则可以正常打印数组元素 } }
-
动态初始化和默认初始化
public static void main(String[] args) { //动态初始化:包含默认初始化(没赋值之前,int类型,默认为0) int[] b=new int[10]; b[0] = 10; System.out.println(b[0]);//打印出货值是10 System.out.println(b[1]);//没赋值,默认为0 System.out.println(b[2]);//没赋值,默认为0 System.out.println(b[3]);//没赋值,默认为0
-
数组要注意点:
- 数组是相同数据类型(数据类型可以为任意类型)的有序集合
- 数组也是对象。数组元素相当于对象的成员变量
- 数组长度是确定的,不可变的。如果越界,则报ArrayIndexOutOfBounds