• 虚拟机内存管理机制


    PS:本文参考《深入理解虚拟机一书》

    虚拟机内存划分及各自作用

    1.java虚拟机栈:用来存放局部变量表和对象的引用,虚拟机栈的单位是帧栈,每一个方法进栈后就是一个帧栈,方法执行完毕后会进行弹栈。java虚拟机栈是线程私有的,每一个线程都有自己的虚拟机栈。

    2.本地方法栈:本地方法栈的作用和虚拟机栈一样,但是它是用来存放本地方法的。而且也是线程私有的。

    3.程序计数器:它就像一个指针一样,用来记录代码执行到什么地方,比如在多线程中,一个线程在下次获得cpu的时候,会继续从上一次中断的位置继续执行,它是线程私有的。

    4.方法区:存放类的信息,还有常量池,用来存放一些常量,比如String对象和静态常量,此外还有运行时常量池,和常量池不同的是,在运行阶段会从常量池copy数据,还可以动态添加数据,比如String的intern()方法。它线程共享的。

    5.堆内存:用来存放对象,是发生GC的主要区域,方法区也会发生那个GC,栈中对象的引用存放的就是堆中对象的内存地址。它是线程共享的。

    从网上找个图方便记忆:

  • 相关阅读:
    JSON
    event flow
    for,for each,for in,for of
    history of program language
    px fr em rem
    正则符号
    DOM、BOM
    web布局
    grid
    初学python环境安装
  • 原文地址:https://www.cnblogs.com/yanqingguo/p/9720239.html
Copyright © 2020-2023  润新知