zoukankan      html  css  js  c++  java
  • 第2章 认识JAVA虚拟机的基本结构

    2.1 虚拟机的内存划分

      

    • 垃圾回收系统既回收堆,也回收方法区和直接内存
    • 直接内存其实是一块不受JVM管理的内存,但是收到计算机内存的限制

    2.2 虚拟机参数

      -Xmx:虚拟机最大可用内存

    2.3 堆

      

      新生对象在eden和s0或者s1,每一次垃圾回收幸存下来的对象会倒腾到另一个s区并且岁数增大,大到一定程度就放到老年代。

    2.4 栈

      栈对应线程私有内存,线程每次调用方法对应一个栈帧入栈,方法正常返回或者抛出异常对应栈帧出栈。

      栈的深度决定函数调用的最大的次数,如果栈满了回在此区域发生OOM。

    2.4.1 局部变量表

      方法里的参数和局部变量存在于栈帧的局部变量表中。局部变量是GCRoots的重要组成部分,凡是被局部变量引用的对象都不可以回收。

        

    2.4.2 操作数栈

      字节码是一个面向栈的机器码

    2.4.3 帧数据区

      用来支持常量池解析。当方法需要使用常量池里的常量的时候,在帧数据区里存放指向该常量的指针。

      

      

  • 相关阅读:
    python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分
    Python的函数
    Python的Set容器
    Python的Dict容器
    Python的tuple容器
    Python的List容器
    python 的控制流程
    Python 数据类型
    k8s-Pod调度策略
    K8s创建pod yaml文件详解
  • 原文地址:https://www.cnblogs.com/AshOfTime/p/10554160.html
Copyright © 2011-2022 走看看