JVM:(二)运行时数据区

1. 运行时数据区


1)堆:线程共享,存放新建的对象。
2)方法区:线程共享,存放类信息、常量、静态变量等。
3)虚拟机栈:线程独立,又叫线程栈。用来存放线程内部的局部变量,先进后出FILO。栈由栈帧组成,栈帧又分为:局部变量表,操做数栈,动态连接,方法出口。线程方法里产生的较小的局部对象也可能存放在虚拟机栈中。局部变量表:存放局部变量。
        栈帧:java为每个方法,在栈内存里分配一块栈帧,用来隔离每一个方法里的局部变量。
        操做数栈:线程运行时,用于处理数据的临时内存空间。
        动态连接:
        方法出口:记录方法执行完成时返回当上级方法的执行位置。
4)本地方法栈:java调用本地方法(native 修饰的方法)时,分配的内存空间。
5)程序计数器:当前线程所执行的字节码行号指示器,记录代码执行到哪一行java

2. 参数设置

    
        -Xms 最小值。
        -Xmx 最大值。
     方法区
        -XX:MetaSpaceSize 默认 21M,当内存快满的时候会进行gc,根据gc后剩余的空间大小判 断是否须要扩容。生产中通常设置成256M。
        -XX:MaxMetaSpaceSize 默认 -1,不限制最大值。
    
        -Xss 默认1M
相关文章
相关标签/搜索