• JVM 运行时数据区域


    Java虚拟机管理的内存包括以下几个运行时数据区域:

    1.程序计数器:

        程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰。

    2.Java虚拟机栈

        Java虚拟机栈描述的是Java方法的执行模型:每个方法执行的时候都会创建一个帧栈用于存放局部变量表,操作栈,动态链接,方法出口等信息。一个方法的执行过程,就是这个方法对于帧栈的入栈出栈过程。

    3.本地方法栈

        本地方法栈与Java虚拟机栈功能相似。Java虚拟机栈储存Java方法执行的数据,本地方法栈储存Native方法执行数据。

    4.堆

        堆是Java虚拟机管理内存中最大的一块,也是垃圾回收经常光顾的地方。堆里存放的是对象的实例。

    5.方法区域

        方法区域存放的是被虚拟机加载的类信息,常量,静态变量,即时编译后的代码等数据。Java虚拟机规范中将它描述成堆的一部分。常量池是方法区域的一部分,里面存放编译期生成的各种字面量和符号引用。

        另外,还有直接内存,它不是虚拟机运行时数据的一部分,也不是Java虚拟机规范中定义的内存区域,但是这部分内存是会被频繁的使用的。

  • 相关阅读:
    ps命令
    关于typedef的用法总结
    C#中正则表达式的使用
    调试与编译
    大端和小端
    64位程序内存之我看
    C/C++内存泄漏及检测
    内核中的 likely() 与 unlikely()
    do/while(0) c4127
    django+xadmin在线教育平台(六)
  • 原文地址:https://www.cnblogs.com/hushaojun/p/4948467.html
Copyright © 2020-2023  润新知