java虚拟机运行时分布区域

来源:互联网 发布:辐射4 杰洛特捏脸数据 编辑:程序博客网 时间:2024/06/02 07:27

  • 概述
  • 运行时数据区域
    • 程序计数器
    • java虚拟机栈
    • 本地方法栈
    • java堆
    • 方法区
    • 运行时常量池
    • 直接内存

概述

本文将从概念上介绍java虚拟机内存的各个区域,讲解这些区域的作用、服务对象以及其中可能产生的问题。

运行时数据区域

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

程序计数器

程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。

java虚拟机栈

与程序计数器一样,java虚拟机栈也是线程私有的,它的生命周期与线程相同。

本地方法栈

本地方法栈与虚拟机栈所发挥的作用是非常相似的,他们之间的区别是虚拟机栈为虚拟机执行的java方法(字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。

java堆

java堆是java虚拟机所管理的内存中最大的一块。java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象的实例,几乎所有的对象实例都在这里分配内存。

方法区

方法区与java堆一样,是被各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

运行时常量池

运行时常量池是方法区的一部分。Class文件中除了有类的版本、字段、方法、接口等描述信息外,还有一项信息是常量池,用于存放编译期间生成的各种字面量和符号引用,这部分内容将在类加载后进入方法区的运行时常量池中存放。

直接内存

直接内存并不是虚拟机运行时数据区的一部分,也不是java虚拟机规范中定义的内存区域。但是这部分内存也被频繁地使用,而且也可能导致outOfMemoryError一场出现。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩得中耳炎怎么办 宝宝中耳炎发烧怎么办 感冒引起耳鸣怎么办 拨牙伤到牙神经怎么办 瘦脸针后脸下垂怎么办 瘦脸针皮肤松弛怎么办 瘦脸针过敏了怎么办 打瘦脸针发炎了怎么办 耳朵长疱疹怎么办 耳朵的疱疹怎么办 带状疱疹头疼怎么办 笑肌太大怎么办 拍照不会笑怎么办 脸容易胖怎么办 右脸面瘫怎么办 孩子面瘫怎么办 iphone7阴阳屏怎么办 鸡皮肤痒怎么办 冬天鸡皮瘙痒怎么办 得了颈椎炎怎么办 咽炎性咳嗽怎么办 肌肉痉挛怎么办 眼部肌肉痉挛怎么办 眼部神经痉挛怎么办 脸部肌肉抽搐怎么办 脑神经痉挛怎么办 吃卡马西平头晕怎么办 手坐骨神经损伤怎么办 孕妇面神经麻痹怎么办 面部神经抽搐怎么办 面部神经性皮炎怎么办 神经跳痛怎么办 耳朵麻木了怎么办 老年人脑中风怎么办 脑中风后怎么办 老年人中风怎么办 老人中风偏瘫怎么办 小儿面瘫怎么办 宫外孕怎么办严重吗 古代发生宫外孕怎么办 出现宫外孕怎么办