zoukankan      html  css  js  c++  java
  • JVM 运行时数据区域

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

    1.程序计数器:

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

    2.Java虚拟机栈

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

    3.本地方法栈

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

    4.堆

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

    5.方法区域

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

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

    文章转自:http://blog.csdn.net/ol_beta/article/details/6804061

  • 相关阅读:
    网络面试题-1
    CentOS7下配置Squid代理
    docker使用harbor搭建私有仓库
    docker 基础命令
    docker要隔离的的6种namespace
    python 列表中的数字转为字符串
    python 排列组合
    filter函数
    Pytest配置文件声明自定义用例标识
    pytest参数化
  • 原文地址:https://www.cnblogs.com/likehua/p/4042390.html
Copyright © 2011-2022 走看看