1、java运行时的数据区:程序计数器、方法区、虚拟机栈、本地方法栈、堆 ①、程序计数器:一块较小的内存空间,可看作当前线程所执行的字节码的行号指示器 ②、java虚拟机栈:与程序计数器一样,也是线程私有的,它的生命周期与线程相同,为虚拟机执行java方法服务(粗糙的讲就是栈内存) ③、本地方法栈: ...
分类:
编程语言 时间:
2017-08-31 11:11:10
阅读次数:
178
资料来源:http://www.cnblogs.com/smile361/archive/2013/11/25/3441553.html 程序计数器: 当前线程所执行的字节码的行号指示器 本地方法栈: 为虚拟机使用的native方法服务 java虚拟机栈Stack: 描述java方法执行的内存模型, ...
分类:
编程语言 时间:
2017-08-24 14:04:53
阅读次数:
236
程序计数器、Java虚拟机栈、本地方法栈分配的内存是确定的,生命周期与线程同样。所以不须要过多考虑回收问题。而Java堆和方法区仅仅有运行时才知道有哪些对象被创建,须要多少内存,这部分的内存分配和回收是动态的。 1. 检測垃圾内存的方法 1) 引用计数器 给对象加入引用计数器,有地方引用时+1,引用 ...
分类:
其他好文 时间:
2017-08-20 19:45:53
阅读次数:
161
Java虚拟机的内存模型分为五个部分。各自是:程序计数器、Java虚拟机栈、本地方法栈、堆、方法区。 这五个区域既然是存储空间,那么为了避免Java虚拟机在执行期间内存存满的情况,就必须得有一个垃圾收集者的角色。不定期地回收一些无效内存,以保障Java虚拟机可以健康地持续执行。 这个垃圾收集者就是寻 ...
分类:
其他好文 时间:
2017-08-17 12:35:44
阅读次数:
138
在上一节中Java虚拟机内存分布 说了Java虚拟机中分为五个区域,而且也知道了在Java程序计数器区域不会出现OOM(OutOfMemeryError),那么以下就对除了程序计数器以外的四个区域出现OOM的原理以及解决方案进行解说。 1.Java虚拟机栈与本地方法栈 栈的大小控制參数时 -Xss。 ...
分类:
编程语言 时间:
2017-08-01 22:58:47
阅读次数:
125
与程序计数器一样,Java虚拟机栈也是线程私有的,他的生命周期与线程相同。虚拟机栈描述的是Java执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息。每个方法被调用直至执行完成的过程,就对应一个虚拟机栈由入栈到出栈的过程。 局部变量表存放了编 ...
分类:
编程语言 时间:
2017-07-30 15:48:07
阅读次数:
119
分为以下几个运行时数据区: 程序计数器,java虚拟机栈,本地方法栈,java堆,方法区 程序计数器: 线程私有,记录正在执行的虚拟机字节码指令地址,执行本地方法则为空,是唯一一个java虚拟机内存中没有PutOfMemoryError情况 java虚拟机栈: 线程私有,生命周期也与线程相同,用于支 ...
分类:
编程语言 时间:
2017-07-27 18:20:59
阅读次数:
151
Java内存区域 一、运行时内存区域 java虚拟机所管理的内存将会包括以下几个运行时内存区域。 1.程序计数器 Program Counter Register:可以看作当前线程(线程私有)所执行的字节码行号指示器。 2.Java虚拟机栈 Java Virtual Machine Stacks:也 ...
分类:
编程语言 时间:
2017-07-09 10:36:04
阅读次数:
196
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(Java虚拟机栈 ...
分类:
其他好文 时间:
2017-06-30 12:34:08
阅读次数:
151
读了《深入理解Java虚拟机》之后,当时理解了,过段时间又忘记了,在此做下记录,方便自我回顾,也希望能帮到想要学习虚拟机的同学。 Java虚拟机在执行java程序时会把它所管理的内存分为5个不同的数据区域(也可以细分为7个不同的区域,后续做介绍):程序计数器、Java虚拟机栈、本地方法栈、Java堆 ...
分类:
编程语言 时间:
2017-06-22 00:15:46
阅读次数:
184