java语言是典型的静态语言,因此java的数组是静态的,即数组初始化之后长度就不可变了。
java程序数组必须被初始化后才可使用,所谓初始化就是为数组每一个元素分配内存空间,并为每个元素指定初始值。
必须申明,java数组是对象类型,如:int [ ] a = new int[3]; a是数组对象(a是一个对象引用)
对象数组和数组对象:
这个数组的每个元素都是对象类型---对象数组;
java所有数组都是数组对象,因为java数组本身就是类类型。
还有一点必须申明:java二维数组其实是一维数组其中的每个元素都是一个一维数组
静态初始化是指由程序员自己为数组对象的每个元素赋值,由系统自动计算出数组的长度;
例如:String[] a=new String[]{"Hello","World","Yes"};
动态初始化是指由程序员自己指定数组对象的长度,由系统先自动为其赋值。程序中程序员可以为元素重新赋值;
例如:String[] b=new String[4];
for(int i=0;i<b.length;i++){
b[i]=i+"hello ";
}
通常基本整数类型byte,short,int,long,初始值为0;
浮点型float,double,初始值为0.0;
boolean类型,初始值为false;
引用类型:类、String、数组等均为null;
在使用数组的时候,我们通常有两个步骤:
首先,声明数组引用变量,即String[] a,此时的a并不是一个数组对象,而只是一个相当于指针的变量;
然后,当我们执行new String[]{"Hello","World","Yes"}以后才真正创建了一个数组对象,此时变量a 才指向了堆内存里面的数组对象。下面我们可以看个实例:
我们先创建一个数组a,并完成初始化赋值,然后建立一个数组b,并不显现为它赋值,而是让b等于a,从而建立起b到a指向的对象的引用
public class Test
{
public static void main(String[] args)
{
String[] a=new String[]{"Hello","World","Yes"};
String[] b;
b=a;
for(String temp:b){
System.out.println(temp);
}
}
}