在java中 内存、栈内存、堆内存到底有什么区别和联系呢?谁能说清楚啊,请帮忙澄清噢

yesjoy 2004-04-30 11:12:43
我在学习数组时遇到这方面的问题,实在是对内部的东西理解太少噢
按我的理解应该是这样的
栈内存和堆内存都是内存中的 一块区域(不知道这样理解是否正确)
还有堆内存是在new以后才出现的,要被垃圾回收的
而栈内存是只要定义变量后就会分配栈内存给你定义的变量
但是这样的理解显然 很肤浅 如果有朋友对这方面理解深刻 能否用通俗的语言来讲讲啊
如果能够结合例子来讲解那更好啊 多谢了
...全文
164 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
moylaugh 2004-04-30
  • 打赏
  • 举报
回复
栈内存就是内存里的一个堆栈,可以理解为一个方法占用堆栈的一格
当一个方法调用另一个,则当前方法的数据压入堆栈
调用结束返回时,则弹出数据

堆内存照你的理解就差不多了
每用一次new,则分配一块“干净”的内存,即内存的所有数据清零

以上仅供参考
XioSan 2004-04-30
  • 打赏
  • 举报
回复

stack:存放基本类型的数据和对象的reference,但对象本身不存放在stack中
,而是存放在Heap中
Heap:存放用new产生的数据
Static storage:存放在对象中用static定义的静态成员
Constant storage:存放常量

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧