美文网首页
JVM(二)

JVM(二)

作者: _一叶孤帆 | 来源:发表于2021-02-24 21:19 被阅读0次

本地方法栈

本地方法栈保存的是 native 方法的信息。

当一个 JVM 创建的线程调用 native 方法后,JVM 不再为其在虚拟机栈中创建栈帧,JVM 只是简单的动态链接并直接调用 native 方法

线程共享区域

方法区

  • 类信息
  • 常量
  • 静态变量
  • 即时编译期编译后的代码
<= JDK 1.7 永久代
>= JDK 1.8 元空间  (使用的是堆外内存或者叫机器内存,不受限于堆内存,方便拓展,但是会挤压堆空间)

这部分内容是比较难回收的。

Java 堆

  • 对象实例(几乎所有)
  • 数组

堆中的数据是需要频繁回收的。

所以分成了两部分来进行分离

Java 堆参数大小设置

-Xmx 堆区内存可分配最大上限
-Xms 堆区内存可分配最小下限

直接内存(堆外内存)

image.png

不受限于对大小限制,但受到本机总内存限制。会出现 oom 异常。

运行时数据区

  1. 申请内存
  2. 类加载 -> class 进入方法区
  3. 类中的常量、静态变量进入方法区
  4. 虚拟机栈入栈帧
  5. 对象引用入局部变量表
  6. GC

HSDB (内存可视化工具)

window

内存溢出

  • 栈溢出
    方法递归
  • 堆溢出
  • 方法区溢出
  • 本机直接内存溢出

相关文章

  • JVM介绍系列文章

    知晓JVM系列(一):对JVM总览知晓JVM系列(二):JVM内存管理机制与优化初探知晓JVM系列(三) :常用的...

  • JVM与Dalvik

    一、JVM与Dalvik 二、JVM JVM 全称 Java Virtual Machine,也就是我们耳熟能详的...

  • jvm垃圾清理机制

    更多参考GC及JVM参数浅析JAVA的垃圾回收机制(GC)JVM系列三:JVM参数设置、分析jvm系列 (二) -...

  • JAVA虚拟机(JVM)三:类加载器子系统

    JAVA虚拟机(JVM)系列:JAVA虚拟机(JVM)一:了解JAVA体系结构JAVA虚拟机(JVM)二:JVM工...

  • JVM

    简介 Jvm 系列一:Java类的加载机制Jvm系列二:JVM内存结构 --内存泄漏与内存溢出Jvm系列三:GC算...

  • JAVA虚拟机(JVM)一:了解JAVA体系结构

    JAVA虚拟机(JVM)系列:JAVA虚拟机(JVM)一:了解JAVA体系结构JAVA虚拟机(JVM)二:JVM工...

  • Java开发

    JVM 内存溢出实例 - 实战 JVM(二) 介绍 JVM 内存溢出产生情况分析Java - 注解详解 详细介绍 ...

  • JVM(一)---- 总结与专题目录

    JVM(一)---- 总结与专题目录JVM(二)----Java运行时数据区域JVM(三)----垃圾收集算法及S...

  • JVM(五)----虚拟机类加载机制

    JVM(一)---- 总结与专题目录JVM(二)----Java运行时数据区域JVM(三)----垃圾收集算法及S...

  • JVM(二)----Java运行时数据区域

    JVM(一)---- 总结与专题目录JVM(二)----Java运行时数据区域JVM(三)----垃圾收集算法及S...

网友评论

      本文标题:JVM(二)

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