前者是在堆中,后者是在栈中吗,这个是Java的,有点不懂他们的区别
int []s=new int[]{1,2} 是 new出来的对象,无论对象是否存在,都会开辟出一块新内存来存放它
int[] s={1,2} 会先在内存中查找,如果内存中已经有{1,2}则直接返回该对象的引用
所以 int[] s={1,2} 和 int[] z={1,2} 的地址值是一样的, 而int []s=new int[]{1,2} 和 int []z=new int[]{1,2}则是不一样的
在java中数组也是对象,都存在堆当中,而在栈当中只保存的是数组的引用(s) 说白了栈中保存堆中的地址而以。