先看下面这张图:
先别退出!等我给你细细道来:
当我们声明一个叫 A 的数组时:
int[] A;
电脑先将 A 数组的名字放进栈中
当我们创建数组时:
A = new int[4];
电脑在堆中开辟了一个空间,并把它们分成4份
当我们赋值时:
A[0] = 1;
A[1] = 2;
A[2] = 3;
A[3] = 4;
诶,它就变成了上面那张图的样子。
讲完了这个,我们再来说说三种初始化数组的方法:
第一种:静态初始化
int[] a = {1,2,3,4,5};
在创建数组时就已经把里面的值给写好了
第二种:动态初始化
int[] a = new int[10];
a[0] = 1;
a[1] = 2;
……
创建数组以后再赋值的过程叫做动态初始化
第三种:默认初始化
int[] a = new int[10];
默认初始化就是不给数组赋值,此时a数组的10个空间里的值默认为0
当然如果,a数组为String类型的话,默认值为null
默认初始化是建立在动态初始化的基础上的