一、模型图
二、各部分功能
1.本地方法栈:存储C++等方法运行时的栈区。
2.程序计数器:指向程序当前的位置。
3.方法区:又称元数据空间,存储元数据信息,主要存储一些静态方法或变量等全局数据信息,类加载器也在其中。
4.栈区:存储函数当前运行过程中的一些临时变量,与本地方法栈和程序计数器一起为线程私有的。
5.堆区:主要用来存对象。存放时分为地址和内容两部分。
栈与堆的区别:栈区存储的对象实际存储的是对象的引用类型,即对象的地址,最终指向堆区的实际存在的对象。
三、数据存放流程
main方法存放于方法区。
非静态方法中的数据存放于栈区,并在方法结束时按先入后出,后入先出的顺序释放。
新建的对象存放于堆区,存放地址及对象内容。