美文网首页
JVM 内存模型

JVM 内存模型

作者: 胡子朋 | 来源:发表于2017-12-21 22:09 被阅读0次

[TOC]
[图片上传失败...(image-b8ff6a-1513865396951)]

虚拟机栈

[图片上传失败...(image-4b9815-1513865396951)]

  1. 每个线程有一个==私有==的栈,随着线程的创建而创建
  2. 每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息
  3. 栈的大小可以固定也可以动态扩展
  4. 以栈帧为单位,进行压栈和出栈

本地方法栈

这部分主要与虚拟机用到的 Native 方法相关,一般情况下, 不需要关心这部分的内容

PC 寄存器

也叫程序计数器

  1. JVM支持多个线程同时运行,每个线程都有自己的程序计数器
  2. 倘若当前执行的是 JVM 的方法,则该寄存器中保存当前执行指令的地址;倘若执行的是native 方法,则PC寄存器中为空
  3. ==线程私有==,因为多线程并发回来后要恢复到当前线程之前执行的位置,所以每个线程都会独立拥有一个 PC
  4. 占用空间极小

  1. 堆内存是 JVM 所有线程共享的部分,在虚拟机启动的时候就已经创建
  2. 所有的对象和数组都在堆上进行分配
  3. 这部分空间可通过 GC 进行回收。当申请不到空间时会抛出 OutOfMemoryError

方法区(Method Area)

特点

  1. ==线程共享==
  2. 又称为 Non-Heap,用来和堆进行区分
  3. 用于存储已被虚拟机加载的==类信息==、==常量==、==静态变量==、即使编译后的代码等数据
  4. HotSpot 虚拟机把 GC 分代收集扩展至方法区,所以在 HotSpot 可以称它为永久代(Permanent Generation)

方法区的大小的分配

  • -XX:MaxPermSize 最大值,上线
  • -XX:PermSize 最小值
-XX:MaxPermSize=10M -XX:PermSize=10M

运行时常量池(Runtime Constant Pool)

用于存放编译期生成的各种字面量和符号引用

直接内存

直接内存并不是虚拟机运行时数据区的一部分。
在NIO中,引入了一种基于通道和缓冲区的I/O方式,它可以使用native函数直接分配堆外内存,然后通过一个存储在java堆中的DirectByteBuffer对象作为这块内存的引用进行操作。
-XX:MaxDirectMemorySize设置最大值,默认与java堆最大值一样。

-XX:MaxDirectMemorySize=10M -Xmx20M

相关文章

  • JVM内存模型(jvm 入门篇)

    概述 jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,...

  • JVM

    栈容量由-Xss指定深入理解JVM—JVM内存模型 JVM内存模型和JVM参数的关系

  • [Java多线程编程之八] Java内存模型

    一、Java内存模型 == JVM内存模型?   很多人都会认为Java内存模型就是JVM内存模型,但实际上是错的...

  • JVM问题及解答

    常见JVM问题 JVM内存模型,GC机制和原理。注意JVM内存模型与Java内存模型(JMM)不是同一个东西。JV...

  • JVM内存结构和Java内存模型

    最近看到两个比较容易混淆的概念:JVM内存结构和Java内存模型 JVM内存结构JVM内存结构或者说内存模型指的是...

  • 高效并发

    从JVM的角度看一下Java与线程,内存模型,线程安全以及JVM对于锁的优化 硬件内存模型与JVM内存模型 硬件的...

  • jvm

    1.5.1JVM的内存模型 首先我们来了解一下JVM的内存模型的怎么样的: 基于jdk1.8画的JVM的内存模型-...

  • JVM基础知识点

    1. 内存模型以及分区,需要详细到每个区放什么(共分为5个)。 JVM内存模型及分区jvm内存模型和内存分配 程序...

  • 面试系列之JVM

    1.jvm内存模型 jvm内存模型主要有运行时期模型和非运行时期两部分组成,通常说的jvm内存模型是指运行时期内存...

  • jvm内存模型

    Java虚拟机内存模型 计划发布3篇博客, 这是第一篇:jvm内存模型 jvm内存模型 对象创建和内存分配 OOM...

网友评论

      本文标题:JVM 内存模型

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