日期:2014-05-20  浏览次数:20600 次

关于数组的分配
int[] num={1,2,3};
int[] num1=new int[]{1,2,3};
这两个有什么不同啊?java中的内存是怎么分配的???

------解决方案--------------------
num 是栈中的引用变量 指向堆中的地址连续的1,2,3中的首地址
如果int[] num={1,2,3};和
int[] num1=new int[]{1,2,3};比较的话,我认为在内存分配没区别,
int[] num1=new int[]{1,2,3};可以写为int[] num={1,2,3};而已
两种写法都是数组的静态初始化
相对的 下面这个是动态初始化
Java code

int[] num1=new int[3];//num1指向堆内存中3个连续地址,数组内容全为null
for(int i = 0 ;i < 3 ;i++){
  int[i] = i;
}