Java运行时数据区讲解
2016-05-28 23:06
239 查看
组成部分
程序计数器
因为Java虚拟机的多线程是通过线程轮流切换并分配处理器时间来执行的,所以每条线程都需要一个程序计数器,来知道一个线程执行到了什么地方。本地方法栈
这是为JVM运行Native方法准备的空间。Java栈
每个方法在执行的同时都会创建一个栈帧,用户存储局部变量表,操作数栈,动态链接,方法出口等,局部变量存储了8种基本类型,和对象的引用。Java栈是线程私有的,我们不用关心它的数据一致性问题。堆
堆是存储对象的地方,Java堆是被所有线程共享的一块内存区域,对它的访问要注意同步问题。它也是垃圾收集器的管理的主要区域。方法区
它是用于存储类结构信息的地方,它也是被线程共享的。其中的常量池、域、方法数据、方法体、构造函数等都存储在这个区域。参考
《深入理解Java虚拟机》《深入分析Java Web技术内幕》
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树