jvm内存模型

Posted wcss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm内存模型相关的知识,希望对你有一定的参考价值。

VM 中文名java虚拟机,是用来运行java程序的一个平台,这篇文章 主要讲述 JVM的内存模型。

 

首先JVM将内存划分为了5大块,如下图所示:

技术图片JVM内存模型

 

这5大块可以分为 两大类,分别是 线程私有的,和 线程共享的

线程私有的

虚拟机栈,本地方法栈,程序计数器

这块区域的数据是每个线程私有的,随着线程的创建而创建,线程的结束而释放

 

虚拟机栈

这块区域用于存放局部变量表(基本类型的变量,会把数据一起存在这,引用类型的 会将内存地址存在这) 以及 正在运行的方法信息

 

本地方法栈

这一块和虚拟机栈基本一致,但他存放的是 本地方法 创建的数据,程序员一般不需要过多的去关注他。

 

程序计数器

这块区域存放的是 线程正在执行的 字节码的行号指示器

 

线程共享的

方法区,堆

这块区域的数据是每个线程共享的,他的生命周期跟线程无关,通常有垃圾回收机制来进行回收

 

方法区

这块区域也被称为 永久代 或者静态区,从名字就可以看出来,他是用于存放一些 永久性质的数据的,包括如下数据:

1. 类的访问修饰符,类型(接口,抽象,类),全线名称

2. 字段的访问修饰符,类型,名称,

3. 方法的访问修饰符,返回类型,名称,参数个数,参数类型等。

 

同时 静态成员变量以及常量(包括值) 也会存在这块区域。

 

这块区域用于存放对象的实例,垃圾回收一般情况下只会在这个区域进行。

以上是关于jvm内存模型的主要内容,如果未能解决你的问题,请参考以下文章

JVM内存模型Java内存模型 和 Java对象模型

JVM:JVM内存模型

JVM内存模型详解

细说JVM内存模型

JVM优化系列-------[3丶JVM的内存模型]

两种内存模型——JVM vs 计算机