C#中关于数组“静态初始化”和“动态初始化”的对比

一:静态初始化是指由程序员自己为数组对象的每个元素赋值,由系统自动计算出数组的长度,直接存放在栈区;

例如: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);

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容