java使用new创建数组对象,存在堆内存中。
使用方式:
int[] a;(声明一个数组,数组名为s,即一个引用类型a,存在栈里)
a = new int[5];(将a指向一个数组对象)
a[0] = 1;
java声明数组不能指定其长度。
int a[5];非法
动态初始化:数组定义与数组元素空间分配和赋值操作都各自分开。
静态初始化:数组定义时就为数组元素分配空间并赋值。
int[] a = {1,2,4};
Date b[] = {new Date(1,1,1),new Date(2,2,2)};
数组元素默认初始化:数组分配空间后,每个元素按照成员变量的规则被隐式初始化。(基本类型为0,false等,引用类型为null)
数组是多个相同类型数据的组合,用来对这些数据进行统一的管理。
数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于对象的成员变量。
数组中的元素可以是任何数据类型,包括基本类型和引用类型。
存对象是存对象的引用,由这个引用再指向对象。
多维数组的初始化要从高维到低维的顺序进行。
数组拷贝:
java.lang.System的静态方法:
public static void arrycopy(Object src, int srcPos, Object dest, int destPos, int length)
从数组src的srcPos开始的length个元素拷贝到dest数组中从destPos开始的length个位置。
效率很高,从内存直接拷贝。
多维数组的拷贝,拷贝的是引用,即对拷贝的后数组操作和对原数组操作是操作同一块内存。