【读书会第十二期】JAVA虚拟机内存
【摘要】 java自动内存管理机制---运行时数据区域:Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是依赖用户线程的启动和结束而建立和销毁。虚拟机栈:也称为Java栈,每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧。java堆空间划分:根据对象的存活率(年龄)...
java自动内存管理机制---
运行时数据区域:Java虚拟机在执行Java程序的过程中会把它管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在, 有些区域则是依赖用户线程的启动和结束而建立和销毁。
虚拟机栈:也称为Java栈,每个方法被执行的时候,Java虚拟机都会同步创建一个栈帧。
java堆空间划分:根据对象的存活率(年龄)Java堆内存划分为3种,新生代,老年代,永久代。
对象的访问定位:JAVA 程序会通过栈上的 reference 数据来操作堆中的具体对象, reference(引用) 数据,就是创建的这个对象的引用指针,虚拟机通过这个引用指针呢,去堆中找到这个对象的实例数据。目前,主流的访问方式有两种,第一种是使用句柄进行访问,第二种则是使用直接指针进行访问
最后通过三个例子来说明今天讲的概念,分别是:JAVA堆溢出,栈溢出,直接内存溢出。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)