Java数组是静态的
java语言是静态语言,因此java数组也是静态的,即当数组被初始化之后,该数组的长度是不可变的。java程序中的数组必须经过初始化才能使用。所谓初始化,就是为数组对象的元素分配内存空间,并为每个数组元素分配初值。
数组的初始化有以下两种方式:
1.静态初始化:初始化时由程序员指定每个数组元素的初值,由系统决定数组长度。
2.动态初始化:初始化时由程序员指定数组长度,由系统为数组元素分配初值。
指定初始值时,系统会按照如下规则分配初始值:
*数组元素类型为整数类型时(byte,short,int,long),数组元素的值为0;
*数组元素类型为浮点类型时(float,double),则数组元素的值为0.0;
*数组元素类型为布尔类型时(boolean),则数组元素的值为false;
*数组元素类型为引用类型时(类,接口和数组),则数组元素的值为null
注意:不要同时使用静态初始化和动态初始化。
一旦数组初始化完成,数组元素的内存空间分配完成,程序只能改变数组元素的值,但不能改变数组的长度
数组变量和数组对象
数组变量:是一个引用变量(类似于C语言里的指针),通常存放在栈内存中(也可以放入堆内存)
数组对象:保存在堆内存中的连续内存空间
对数组执行初始化,其实是对数组对象执行初始化——也就是对该数组对象分配一块连续的内存空间,这块空间的长度就是数组的长度。
对于数组变量来说,并不需要进行所谓的初始化,只要让数组变量指向一个有效的数组对象,程序即可正常使用该数组变量