• JVM内存模型介绍


    17ab7127dc1b48aea7fbc85d70dc2880.gifJVM 分为堆、栈、方法区、程序计数器、本地方法栈

     

     

          栈内存存放局部变量表、操作栈、动态链接、方法出口等信息

     

         1、 局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference 类型,它不等同于对象本身,根据不同的虚拟机实现,它可能是一个指向对象起始地址的引用指针,也可能指向一个代表对象的句柄或者其他与此对象相关的位置)和returnAddress 类型(指向了一条字节码指令的地址)。其中64 位长度的long 和double 类型的数据会占用2 个局部变量空间(Slot),其余的数据类型只占用1 个。局部变量表所需的内存空间在编译期间完成分配,当进入一个方法时,这个方法需要在帧中分配多大的局部变量空间是完全确定的,在方法运行期间不会改变局部变量表的大小、

     

         2、 在Java 虚拟机规范中,对这个区域规定了两种异常状况:如果线程请求的栈深度大于虚拟机所允许的深度,将抛出StackOverflowError 异常;如果虚拟机栈可以动态扩展

     

    (当前大部分的Java 虚拟机都可动态扩展,只不过Java 虚拟机规范中也允许固定长度的虚拟机栈),当扩展时无法申请到足够的内存时会抛出OutOfMemoryError 异常。

     

          

     

    3、本地方法

     

    本地方法栈(Native Method Stacks)与虚拟机栈所发挥的作用是非常相似的,其区别不过是虚拟机栈为虚拟机执行Java 方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的Native 方法服务。虚拟机规范中对本地方法栈中的方法使用的语言、使用方式与数据结构并没有强制规定,因此具体的虚拟机可以自由实现它。甚至有的虚拟机(譬如Sun HotSpot 虚拟机)直接就把本地方法栈和虚拟机栈合二为一。与虚拟机栈一样,本地方法栈区域也会抛出StackOverflowError 和OutOfMemoryError

     

    异常。

     

    4.java堆

     

    java堆是虚拟机管理最大的内存,被所有线程共享的一块内存。java堆分为新生代和老年代 新生代分为 Eden 和 From survivor To survivor空间。

     

    5.方法区和java堆一样。是各个线程共享的内存区域。存放虚拟机加载的类信息、常量、静态变量。类似于永久代。当方法区无法满足内存分配的需求时,将抛出OutOfMemoryError异常

     

    6、永久代 直接内存(堆外内存)

     

    jdk1.4后加入NIO 引入了通道与缓冲区的I/O方式。可以直接操作直接内存

     

     

     

    7、jvm配置参数

     

    -Xms 初始堆内存大小

     

    -Xmx 最大堆内存大小

     

    -Xmn 年轻代大小  

     

    -XX:PermSize 永久代

     

    -XX:MaxPermSize 最大永久代

     

    -Xss 每个线程的堆栈大小 栈深

     

    GC配置

     

    -XX:+PrintGC

     

    -XX: +PrintGCDetails

     

    GC性能配置

     

        1、尽可能分配内存多给虚拟机

     

        2、初始堆和最大堆大小一样

  • 相关阅读:
    DDRx寻址原理
    [BT]BUUCTF刷题第20天(4.22)
    keepalived IP漂移
    【VASP】POSCAR文件
    用一个文件,实现迷你 Web 框架
    Solon Java 应用开发框架 v2.7.5 发布
    【SpringSecurity系列3】基于Spring Webflux集成SpringSecurity实现前后端分离无状态Rest API的权限控制
    【Swift 60秒】50 - Returning values from a closure
    sleep() 方法和 wait() 方法对比
    TypeScript(零) —— 简介、环境搭建、第一个实例
  • 原文地址:https://blog.csdn.net/weixin_57763462/article/details/134001125