理解三种内存管理模式
分类
- 静态内存分配
在编译阶段就已经进行完毕 - 动态内存分配
基于栈:运行时栈,存储函数中变量的引用和简单数据类型的值,不支持复杂数据类型
基于堆: 在一块内存里分为多个小块,每块包含 一个对象,或者未被占用;存储复杂数据类型,也就是new出来的对象
结合图像理解堆和栈
- 所有局部的基本数据类型都在栈上创建
- 所有对象都在堆上创建 (new),即使是局部变量的object也是在堆上创建
- 堆上创建的对象可对所有线程共享引用
结合图像理解jvm内存管理
- Method Area:用于存储被VM加载的类信息、常量、静态变量等(java8之后叫metaspace)