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

解决方案 »

  1.   

    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};而已
    两种写法都是数组的静态初始化
    相对的 下面这个是动态初始化int[] num1=new int[3];//num1指向堆内存中3个连续地址,数组内容全为null
    for(int i = 0 ;i < 3 ;i++){
      int[i] = i;
    }