运行时数据区域:
线程私有:
1.程序计数器
如果正在执行的方法为Native方法,程序计数器值为空。
2.java虚拟机栈
虚拟机栈描述java方法执行的内存模型:每个方法被执行时会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口。从方法的调...
分类:
编程语言 时间:
2015-03-09 17:40:15
阅读次数:
151
在介绍GC之前有必要先了解一下JVM的内存划分,这样在后面介绍GC和各种不同的GC collector的时候更容易理解。
下面这张图是“偷”的别人的,很经典的描述了jvm的体系结构,我们只需要关注最大的那一块——运行时数据区域。
1.方法区
方法区为各个线程共享的一块内存区域,当虚拟机装载一个class文件时,它会从二进制数据中解析类型的信息,包括类的静态变量也会存储到该区域。虚拟机...
分类:
其他好文 时间:
2015-03-07 01:00:39
阅读次数:
276
Java虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器(Program Counter Register) 它是一块较小的内存空间,它的作用可以看做是当先线程所执行的字节码的信号指示器。 每一条JVM线程都有自己的PC寄...
分类:
编程语言 时间:
2015-02-26 15:04:23
阅读次数:
242
java运行时数据区域总结线程私有:程序计数器:它是一块较小的内存区域,可以把它看作当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是native方法,这个计数器值则为空。注意:..
分类:
编程语言 时间:
2015-02-14 01:25:22
阅读次数:
294
1、堆内存(HeapMemory)和非堆内存(Non-heapMemory) Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配,堆内存(HeapMemory)是在Java虚拟机启动时创建,是Java代码可及的内存,留给开发人员使用的;默认空余堆内存小于40%时,JV....
分类:
编程语言 时间:
2015-02-03 21:00:13
阅读次数:
180
Java虚拟机所管理的内存会包括以下几个运行时数据区域: 程序计数器:是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的事Native方法,这个计数器值则为空。 Java虚.....
分类:
其他好文 时间:
2015-02-01 19:02:16
阅读次数:
258
JAVA运行时数据区域 1、程序计数器:当前线程所执行的字节码的行号指示器。一个处理器只会执行一条线程中的指令,为了线程切换后能回复到正确的执行位置,所以每条线程都需要一个独立的计数器。各条线程之间互不影响,独立存储,属于‘线程私有’内存。 2、java虚拟机栈:描述的是JAVA方法执行的内存模型....
分类:
其他好文 时间:
2014-12-25 18:19:59
阅读次数:
170
最近在看《深入理解Java虚拟机》,里面讲到了Java运行时数据区,这是Jvm基本知识,把读书笔记记录在此。这些知识属于常识,都能查到的,如果我有理解不对的地方,还请指出。首先把图贴上来,图来自JVM Runtime Data Areas(运行时数据区),感谢。由上图可知,Java运行时数据区域包括...
分类:
编程语言 时间:
2014-12-14 00:36:47
阅读次数:
205
Java虚拟机在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域有自各的用途,以及创建及销毁时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(第2版)》规定,Java虚拟机管理的内存区域包括以下几个运行时数据区域,下如图
1.程序计数器(Program Counter Register)
...
分类:
编程语言 时间:
2014-12-05 17:26:15
阅读次数:
246
Java虚拟机管理的内存包括以下几个运行时数据区域:1.程序计数器: 程序计数器是一块比较小的内存空间,是当前线程执行的字节码行号指示器。Java多线程是通过线程轮流切换来实现的,所以每个线程都有一个自己独立的程序计数器,各个线程的程序计数器互补干扰。2.Java虚拟机栈 Java虚拟机栈描述的.....
分类:
其他好文 时间:
2014-10-22 10:52:41
阅读次数:
161