目录
前言:
本文章为深入理解虚拟机系列第一篇,主要内容是理解虚拟机的自动内存管理机制。由于java程序员把控制内存的权利交给了虚拟机,使得开发变得更加简洁和高效,但一旦出现内存泄露和溢出等问题,如果不了解虚拟机是如何管理内存,将会举步维艰。本文章将通过介绍java虚拟机内存的各个区域及其作用来理解虚拟机的内存管理机制。
一、运行时数据区域
根据《Java虚拟机规范》的规定,Java虚拟机管理的内存包括以下几个运行时数据区域,如图
1.1 方法区
1.2 堆
1.3 程序计数器
1.4 虚拟机栈
1.5 本地方法栈与直接内存
二、虚拟机之对象
2.1 对象的创建
2.2 对象的内存布局
2.3 对象的访问定位
三、总结
通过本文章我们了解了虚拟机内部内存的划分,以及可能存在的内存溢出。下一篇将介绍垃圾收集机制是如何工作尽量避免这些内存溢出异常的。