Java中的基本数据类型和引用数据类型的内存模型

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,对内存空间进行了不同的划分(一共有5种)——因此,每一片区域都有特定的处理数据的方式和内存管理方式。

栈内存

存储局部变量,当数据使用完毕,空间会自动释放。

堆内存

  • 对象和数组,通过new建立的实例都存放在堆内存中。
  • 每一个实例都有内存地址值。
  • 实体中的变量都有默认初始化值。
  • 实体不被使用时,会在不确定时间被回收。

Java中的基本数据类型和引用数据类型的内存模型_第1张图片
Java中的基本数据类型和引用数据类型的内存模型_第2张图片

声明数组
Java中的基本数据类型和引用数据类型的内存模型_第3张图片
为数组中的元素赋值
Java中的基本数据类型和引用数据类型的内存模型_第4张图片
将数组指向null
Java中的基本数据类型和引用数据类型的内存模型_第5张图片
Java中的基本数据类型和引用数据类型的内存模型_第6张图片
栈自动释放,堆垃圾回收

方法区

又叫做数据区和共享区。类中的静态成员和类中的方法放在这里

本地方法区

寄存器

你可能感兴趣的:(java内存模型,java)