黑马程序员技术交流社区
标题:
关于堆和栈的问题
[打印本页]
作者:
fiend
时间:
2012-7-28 10:13
标题:
关于堆和栈的问题
这个问题想得不是很明白,一般都说new一个对象,那这个这对象就放在堆中的,然后是局部变量都
放在栈里面的,可是如果局部变量的赋值也是new出来的,那它还是放在栈内存里吗?费解,求正解。。。。
作者:
乐峰
时间:
2012-7-28 10:19
栈内存的特点:存储都是
局部变量 ( 函数参数,函数内定义的变量,语句中定义的变量
)。变量一旦使用完(作用域结束),就会在栈内存中自动释放。堆:存储的是实体(数组和对象,
只要是new的,都在堆中
).
堆内存的特点:
1,堆内存中的实体都有首内存地址值.
2,堆内存中的变量都有默认初始化值.
3,对于没有任何引用变量指向的实体,会视为垃圾,会被垃圾回收机制所回收。
作者:
杜佳瑞
时间:
2012-7-28 10:28
局部变量如果赋值是new出来的话,这个值就是new的这个对象在堆内存中得地址值,这个变量只是对象的一个引用,所以它还是存放在栈内存中,毕老师前面课程讲了好多遍,仔细听一下就会明白的。
作者:
李菁
时间:
2012-7-28 10:31
对象存储在堆中,声明在存储在栈中。
只要有new关键字的都存放在堆内存
堆的优势是可以动态地分配内存大小,栈的优势是存取速度比堆要快,栈可以实现数据共享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2