Java运行时数据区域
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java运行时数据区域相关的知识,希望对你有一定的参考价值。
昨天看JVM原理时,简单总结了下java运行时的数据区域:
1、程序计数器
程序计数器是一块较小的内存空间,它的作用可以看成是当前线程所执行的字节码的信号指示器。在虚拟的概念模型里,字节码解释器的工作就是通过改变这个计数器
的值来选取下一条需要执行的指令,分支、循环、指令、异常处理、线程恢复等基础功能都需要依赖这个计数器。
2、Java虚拟机栈
栈中存储的是类的引用
3、本地方法栈
4、Java堆
Java虚拟机中所管理的内存中最大的一块,Java Heap是被所有线程锁共享的一块区域,在虚拟机启动时创建。此内存区域唯一的目的就是存放对象实例,如果堆中没有
内存完成实例分配,并且堆也无法再扩展,将会抛出OOM异常。
5、方法区
线程共享的内存区域,用于存放类信息,静态变量,常量。当方法区无法满足内存分配时,将会抛出异常OOM。
以上是关于Java运行时数据区域的主要内容,如果未能解决你的问题,请参考以下文章