堆(FIFO)
- 数据结构特点:队列优先,先进先出
- JVM中只有一个堆区被所有线程共享
- 堆存放在二级缓存中,调用对象的速度相对慢一些
- 优点:可以动态分配内存大小,生命周期不确定
- 缺点:速度略慢,因为在二级缓存中
栈(FILO)
- 数据结构特点:先进后出
- 暂存数据的地方,每个线程都会包含一个栈区
- 栈存放在一级缓存中,存取速度较快
- 优点:速度快
- 缺点:存在于栈中数据大小和生命周期必须是明确的,缺少灵活性
方法区
存储的数据变量
1、堆用来存储new出来的对象和数组
2、栈用来存储基本类型变量和对象的引用变量的地址
3、方法区存储方法和static变量
JVM内存结构
原文:https://www.cnblogs.com/Zhouge6/p/12172086.html