JAVA一维数组静态初始化与动态初始化的区别?

JAVA中的一维数组表态初始化,如:
int[] a = {1,2,3}
与动态初始化:
int[] a = new int[3];
for(int i=0;i<3;i++){
a[i] = i+1;}
有什么不同?
静态初始化数组的内存是在栈中分配的吗?动态分配的呢?
诚待大虾解答!

数组的静态初始化
int[] a={1,2,3,4};

动态初始化
int[] intArray;//声明数组
intArray = new int[5];//为数组分配空间

所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。对于代码而言,其实都可以。唯一不一样的地方, 就是动态的初始值都是0,静态的是直接给定值了。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-01-01
静态初始化和动态初始化开始都指定了数组大小,java也在栈空间分配了相应的大小,只是静态初始化开始就指定了值,而动态初始化是在后面指定数组的值,刚开始数组的值都是默认值本回答被网友采纳
第2个回答  2010-01-02
不一样, 动态的初始值都是0,静态的是直接给定值了
第3个回答  2010-01-02
用javap反编译一下生成的class文件就发现是完全一样的
相似回答