java中堆与栈

yuyuantongxing 2019-08-05 04:53:20
java程序是运行在jvm上的(java虚拟机),jvm实现了java平台的无关性,也是java程序和操作系统之间但桥梁。堆与栈是jvm进行内存分配时所涉及的内存区域。 栈:一般存放基本数据类型的值、引用数据类型的实例(或者局部变量等)。 堆:一般存放程序动态产生的数据,比如new出的对象。注意创建的对象只包含属于各自的成员变量,并不包括成员方法。因为同一个类的对象拥有各自的成员变量,存在各自的堆中,但他们类的方法是共享的,不需要每次创建新对象就把成员方法复制一次。 栈的读取速度很快,仅次于cpu中的寄存器,遵循先进后出原则,数据共享,节省内存,在生存期结束后会自动释放。缺点是栈在分配内存时,数据的大小和生存期是确定的,缺乏灵活性。 堆的读取速度比较慢,数据不共享,由java的垃圾回收机制来回收释放内存,但是可以动态的分配内存大小。
...全文
46 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zspmsir 2019-08-06
  • 打赏
  • 举报
回复
不错的小知识,收下了

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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