Java 数组的静态初始化和动态初始化

 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);
}
}
}

你可能感兴趣的:(java)