美文网首页
JVM的内存模型

JVM的内存模型

作者: Guoke24 | 来源:发表于2018-12-04 20:55 被阅读0次

    Java内存区域——堆,栈,方法区等

    深入理解java虚拟机(一)虚拟机内存划分

    深入理解java虚拟机(十) Java 虚拟机运行时栈帧结构

    一个JAVA应用对应一个JVM虚拟机,
    同理一个Android的APP也对应一个JVM虚拟机。

    Java虚拟机在执行Java程序时,会把它管理的内存划分为若干个不同的数据区。这些区域有不同的特性,起不同的作用。它们有各自的创建时间,销毁时间。有的区域随着进程的启动而创建,随着进程结束而销毁,有的则始终贯穿虚拟机整个生命周期。

    Java虚拟机运行时内存区域主要分为七部分,分别是:程序计数器,Java虚拟机栈,本地方法栈,方法区,Java堆,运行时常量池,直接内存。

    程序计数器 --- 盛放当前线程所执行字节码的行号的指示器
    Java虚拟机栈 --- 描述Java方法执行的内存模型,存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
    本地方法栈 --- 虚拟机栈作用十分相似,为Native方法服务
    方法区 --- 共享,用于存储被虚拟机加载的类信息、常量、静态变量等
    Java堆 --- 共享,在虚拟机启动时创建。它的目的便是存放对象实例,即存放用new产生的数据
    运行时常量池 --- 在方法区,存放常量
    直接内存 --- 不属于虚拟机中定义的内存区域,而是堆外内存

    图片来源上述文章

    一个JVM的内存模型 一个栈帧存在于一个线程中的虚拟机栈中
    一个JVM有多个线程

    相关文章

      网友评论

          本文标题:JVM的内存模型

          本文链接:https://www.haomeiwen.com/subject/epsmcqtx.html