int[] array01 = {1,2,3}和
int[] array02 = new int[]{1,2,3};
前者是存储在栈里面,后者是存储在堆里?
还是说我问的有点业余?
前者是后者的缩写?
为了兼容个人习惯的不同?
求大侠出面,小弟初学,有点疑惑!!!
int[] array02 = new int[]{1,2,3};
前者是存储在栈里面,后者是存储在堆里?
还是说我问的有点业余?
前者是后者的缩写?
为了兼容个人习惯的不同?
求大侠出面,小弟初学,有点疑惑!!!
http://topic.csdn.net/u/20090104/13/BBC39C24-ECCE-4B0C-AB56-155B59568A45.html
int[] array02 = new int[]{1,2,3};
array01 是一个引用变量 存放在栈内存里,它保存 {1,2,3}在堆内存中的地地址
int[] array02 = new int[]{1,2,3};new 出来的对象存放在heap ,new出来的对象的引用存放在stack中,
其实这儿就是考察 heap 和stack的存储:
stack:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
heap:存放所有new出来的对象;
int[] array02 = new int[]{1,2,3};创建了俩个对象,new的对象放在堆里,1,2,3先被new在把值引用在
new里(new的对象的引用)是放在栈里!