一:静态初始化是指由程序员自己为数组对象的每个元素赋值,由系统自动计算出数组的长度,直接存放在栈区;
例如:String[] a={"Hello","World","Yes"};
二:动态初始化是指由程序员自己指定数组对象的长度,由系统先自动为其赋值。new String[]{}存放在堆区的,而a存放在栈区,两者通过引用相互连接,new出来的东西都放在堆区。程序中程序员可以为元素重新赋值;
例如:String[] b=new String[4];
for(int i=0;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);
}
}
}