【读书会第十二期】JAVA虚拟机内存

举报
Allen2000 发表于 2022/04/25 22:08:35 2022/04/25
【摘要】 java自动内存管理机制---运行时数据区域:Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是依赖用户线程的启动和结束而建立和销毁。虚拟机栈:也称为Java栈,每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧。java堆空间划分:根据对象的存活率(年龄)...

java自动内存管理机制---

运行时数据区域:Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是依赖用户线程的启动和结束而建立和销毁。

虚拟机栈:也称为Java栈,每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧。

java堆空间划分:根据对象的存活率(年龄)Java堆内存划分为3种,新生代,老年代,永久代。

对象的访问定位:JAVA 程序会通过栈上的 reference 数据来操作堆中的具体对象, reference(引用) 数据,就是创建的这个对象的引用指针,虚拟机通过这个引用指针呢,去堆中找到这个对象的实例数据。目前,主流的访问方式有两种,第一种是使用句柄进行访问,第二种则是使用直接指针进行访问

最后通过三个例子来说明今天讲的概念,分别是:JAVA堆溢出,栈溢出,直接内存溢出。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。