首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java数组小疑点有点疑惑了,求大侠出面

2012-10-29 
java数组小问题有点疑惑了,求大侠出面。int[] array01 {1,2,3}和int[] array02 new int[]{1,2,3}前者

java数组小问题有点疑惑了,求大侠出面。
int[] array01 = {1,2,3}和
int[] array02 = new int[]{1,2,3};
前者是存储在栈里面,后者是存储在堆里?
还是说我问的有点业余?
前者是后者的缩写?
为了兼容个人习惯的不同?
求大侠出面,小弟初学,有点疑惑!!!


[解决办法]
对象永远不会存在于java栈中,数组是对象

java栈,java堆 跟通常所说的栈、堆不是同一个东西,要分清楚。

java栈和java堆可能都是在我们通常所说的堆上分配的
[解决办法]
看看这个:
http://topic.csdn.net/u/20090104/13/BBC39C24-ECCE-4B0C-AB56-155B59568A45.html
[解决办法]
都是存在堆里的 。第二种写法好像不那么常见
[解决办法]
int[] array01 = {1,2,3} 这儿定义的是一个数组变量,给变量赋了初值,存放在heap里面;
int[] array02 = new int[]{1,2,3};new 出来的对象存放在heap ,new出来的对象的引用存放在stack中,
其实这儿就是考察 heap 和stack的存储:
stack:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)
heap:存放所有new出来的对象;
[解决办法]
根据C/C++里面的,第一个是声明一个数组并初始化,第二个是开辟一个空间给一个初始化了的数组!

热点排行