您的位置:首页 > 编程语言 > Java开发

Java运行时数据区讲解

2016-05-28 23:06 239 查看

组成部分



程序计数器

因为Java虚拟机的多线程是通过线程轮流切换并分配处理器时间来执行的,所以每条线程都需要一个程序计数器,来知道一个线程执行到了什么地方。

本地方法栈

这是为JVM运行Native方法准备的空间。

Java栈

每个方法在执行的同时都会创建一个栈帧,用户存储局部变量表,操作数栈,动态链接,方法出口等,局部变量存储了8种基本类型,和对象的引用。Java栈是线程私有的,我们不用关心它的数据一致性问题

堆是存储对象的地方,Java堆是被所有线程共享的一块内存区域,对它的访问要注意同步问题。它也是垃圾收集器的管理的主要区域。

方法区

它是用于存储类结构信息的地方,它也是被线程共享的。其中的常量池、域、方法数据、方法体、构造函数等都存储在这个区域。

参考

《深入理解Java虚拟机》

《深入分析Java Web技术内幕》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java jvm