美文网首页
C#中关于数组“静态初始化”和“动态初始化”的对比

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

作者: 天lc呐 | 来源:发表于2017-11-27 20:15 被阅读0次

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

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

            }

        }

    }

    相关文章

      网友评论

          本文标题:C#中关于数组“静态初始化”和“动态初始化”的对比

          本文链接:https://www.haomeiwen.com/subject/nytjbxtx.html