初始化是为数组对象的元素分配内存空间,并为每个数组元素指定初始值。
数组的初始化有以下两种方式:
1.静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组长度;
2.动态初始化:初始化时程序员只指定数组长度,由系统为数组元素指定初始值。
java语言是典型的静态语言,因此数组是静态的,即是当数组初始化后,该长度是不可变的。
在java中,当执行动态初始化时,系统将为数组元素指定初始值,系统将按如下规则指定初始值:
1.数组元素的类型是基本数据类型中的整数类型(byte,short,int,long),则数组元素的值为0;
2.数组元素的类型是基本数据类型中的浮点类型(float,double),则数组元素的值为0.0;
3.数组元素的类型是基本数据类型中的布尔类型(boolean),则数组元素的值为false;
4.数组元素的类型是基本数据类型中的字符类型(char),则数组元素的值为'\u0000'。
5.数组元素的类型是引用类型(类、接口、数组),则数组元素的值为null;
java的数组变量是一种引用类型的变量,数组变量并不是数组本身,它存储在栈内存中,只是指向堆内存中的数组对象,因此可以通过改变数组变量所引用的数组对象,从而造成数组的长度可变的假象。
与java这种静态语言不同的是,javascript这种动态语言的数组长度是可以动态改变的,示例如下:
var arr = [];
document.writeln("arr的长度是"+arr.length+"<br/>");
arr [4] = "孙悟空";
document.writeln("arr的长度是"+arr.length+"<br/>");
第一个输出语句的arr长度是0,接着为数组的第五个元素赋值后数组长度自动变为5.