- 6
- 0
- 约5.81千字
- 约 6页
- 2017-06-03 发布于湖北
- 举报
Java 内存区域与内存溢出
Java 内存区域与内存溢出
内存区域
Java 虚拟机在执⾏ Java 程序的过程中会把他所管理的内存划分为若⼲个不同的数据区
域 Java 虚拟机规范将 JVM 所管理的内存分为以下⼏个运⾏时数据区:程序计数
器、Java 虚拟机栈、本地⽅法栈、Java 堆、⽅法区 下⾯详细阐述各数据区所存储的
数据类型
程序计数器
⼀块较⼩的内存空间,它是当前线程所执⾏的字节码的⾏号指⽰器,字节码解释器⼯
作时通过改变该计数器的值来选择下⼀条需要执⾏的字节码指令,分⽀、跳转、循环
等基础功能都要依赖它来实现 每条线程都有⼀个独⽴的的程序计数器,各线程间的
计数器互不影响,因此该区域是线程私有的
当线程在执⾏⼀个 Java ⽅法时,该计数器记录的是正在执⾏的虚拟机字节码指令的地
址,当线程在执⾏的是 Native ⽅法 (调⽤本地操作系统⽅法)时,该计数器的值为
空 另外,该内存区域是唯⼀⼀个在 Java 虚拟机规范中么有规定任何 OOM (内存溢
出:OutOfMemoryError )情况的区域
Java 虚拟机栈
该区域也是线程私有的,它的⽣命周期也与线程相同 虚拟机栈描述的是 Java ⽅法执
⾏的内存模型
原创力文档

文档评论(0)