JVM内存结构

堆(FIFO)

  • 数据结构特点:队列优先,先进先出
  • JVM中只有一个堆区被所有线程共享
  • 堆存放在二级缓存中,调用对象的速度相对慢一些
    • 生命周期由虚拟机的垃圾回收机制决定
  • 优点:可以动态分配内存大小,生命周期不确定
  • 缺点:速度略慢,因为在二级缓存中

栈(FILO)

  • 数据结构特点:先进后出
    • 栈是限定仅在表头进行插入和删除操作的线性表
  • 暂存数据的地方,每个线程都会包含一个栈区
  • 栈存放在一级缓存中,存取速度较快
  • 优点:速度快
  • 缺点:存在于栈中数据大小和生命周期必须是明确的,缺少灵活性

方法区

  • 用来存放方法和static 变量

存储的数据变量

1、堆用来存储new出来的对象和数组
2、栈用来存储基本类型变量和对象的引用变量的地址
3、方法区存储方法和static变量

posted @ 2020-01-10 15:34  笔架山Code  阅读(128)  评论(0)    收藏  举报