特点;只能存储相同的数据类型,可以存放对象或者基本数据类型、定长。
数组是属于引用类型。
定义数组:(1)type[] arrayName
(2)type arrayName
推荐使用第一种,因为它具有更好的可读性和语义。
定义数组时不能指定数组的长度,因为数组是引用类型,定义的只是引用变量,也就是指针,它并没有指向有效的内存。
初始化数组:(1)静态初始化:type[] array = new type{ele1,ele2,ele3,.....}
如:int[] array = new int[] {1,2,3};
(2)动态初始化: type[] array = new type[length];
初始化时,就已经为数组分配了内存,如果数组没有赋值,系统会自动赋初始值。
数组元素的类型是基本类型中的整数型(byte、short、int、long)默认赋值:0
数组元素的类型是基本类型中的浮点型(float、double)默认赋值:0.0
数组元素的类型是基本类型中的字符型(char)默认赋值:"\u000"
数组元素的类型是基本类型中的boolean 默认赋值:false
数组元素的类型是基本类型中的引用类型 默认赋值:null
数组遍历:(1)for循环
(2)foreach
两者区别,foreach无需循环条件,无需循环迭代语句,这些都由系统来完成。
数组在内存中表现:
因为数组是引用数据类型,因此数组引用变量只是一个引用,它只是个局部变量,所以会随着方法的结束而消失,它被存放在栈内存里面,而实际上的数组对象存放在堆内存中(一般创建对象成本比较大,而且对象并不会随着方法的结束而消失)。
如何使对象数组被回收:
一般没有引用变量再指向该数组对象,那么垃圾回收机制就会回收该数组对象,所以如果需要让此数组对象被回收,那么只要将引用变量赋值为null,就可以切断两者的引用关系,实际数组对象也就会被回收。