理解三种内存管理模式

分类

  1. 静态内存分配
    在编译阶段就已经进行完毕
  2. 动态内存分配
    基于栈:运行时栈,存储函数中变量的引用和简单数据类型的值,不支持复杂数据类型
    基于堆: 在一块内存里分为多个小块,每块包含 一个对象,或者未被占用;存储复杂数据类型,也就是new出来的对象

结合图像理解堆和栈

  1. 所有局部的基本数据类型都在栈上创建
  2. 所有对象都在堆上创建 (new),即使是局部变量的object也是在堆上创建
  3. 堆上创建的对象可对所有线程共享引用
    HIT软件构造 内存管理

结合图像理解jvm内存管理

  1. Method Area:用于存储被VM加载的类信息、常量、静态变量等(java8之后叫metaspace)
    HIT软件构造 内存管理

举个例子

HIT软件构造 内存管理

再举个例子

HIT软件构造 内存管理

相关文章: