![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内存
iceframemo
这个作者很懒,什么都没留下…
展开
-
Java虚拟机内存管理(1)
运行时数据区域 Java虚拟机所管理的内存包括以下几个运行时数据区域。如下图所示 [2] 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。每条线程都有一个独立的程序计数器,线程之间的计数器互不影响,独立存储,即为“线程私有”的内存。 如果线程正在执行一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的是Nation原创 2018-01-14 22:21:59 · 1030 阅读 · 0 评论 -
JVM内存管理(2)——自动内存管理机制
注:本文只是列出jvm内存中包含的知识点,具体理解还需另行查找。 [1] 垃圾收集 垃圾收集需要完成的3件事情如下: 1)哪些内存需要回收? java堆和方法区 2)什么时候回收? 垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还存活着,哪些已经死去。判断的算法有以下几种: ①引用算法 在对象中添加一个引用计数器,每当一个地方引用它时,计数器值就加1,当引原创 2018-01-21 15:50:16 · 205 阅读 · 0 评论 -
GC算法 垃圾收集器
GC算法 垃圾收集器转发自:https://www.cnblogs.com/ityouknow/p/5614961.html概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自...转载 2018-03-04 22:33:18 · 172 阅读 · 0 评论 -
Java虚拟机的垃圾收集
Java虚拟机的垃圾收集[1] GC需要完成的问题哪些内存需要回收?什么时候回收?如何回收?[2] 判断内存需要回收的算法•引用计数算法(reference-counting) :每个对象有一个引用计数器,当对象被引用一次则计数器加1,当对象引用失效一次则计数器减1,对于计数器为0的对象意味着是垃圾对象,可以被GC回收。•可达性算法(GC Roots Tracing):从GC Roots作为起点开...原创 2018-03-04 22:38:48 · 192 阅读 · 0 评论 -
Java虚拟机内存管理机制——实战测试Java虚拟机的内存溢出异常
实战测试Java虚拟机的内存溢出(OutOfMemoryError)异常在java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError异常的可能。下文将分区域分析OOM异常,代码都是基于Sun公司的HotSpot虚拟机运行的,对于不同公司的不同版本的虚拟机,参数和程序运行的结果可能有所差别。异常的解决则在下一章中进行学习处理。代码的注释部分写...原创 2018-02-25 22:15:51 · 335 阅读 · 0 评论 -
jvm垃圾回收之复制算法——为什么分两块Survivor空间
复制算法的两块Survivor空间概述在《深入理解Java虚拟机》这本书中,对复制算法有一段这样的介绍:现在的商业虚拟机大多采用复制算法来收集新生代。复制算法将内存分为一块较大的Eden空间和两块较小的Survivor空间,每次使用Eden和其中一块Survivor空间,当回收时,将Eden和Survivor中还存活的对象复制到另一块Survivor上,最后清理掉Eden和刚才使用的空间。对虚拟机...原创 2018-04-11 19:42:16 · 3375 阅读 · 1 评论