判断对象是否存活 无用的类标准 垃圾收集算法:标记-清除算法(CMS)、复制算法(新生代)、标记整理算法 HotSpot算法 没有为所有指令都生成OopMap,程序并发所有地方都能停下来执行GC,只有到了安全点才能暂停 主动式中断:GC需要中断线程时,设置一个标志,线程执行时主动去轮询这个标志,再中 ...
分类:
其他好文 时间:
2017-04-15 14:50:30
阅读次数:
154
Reference对象封装了其它对象的引用,可以和普通的对象一样操作,在一定的限制条件下,支持和垃圾收集器的交互。即可以使用Reference对象来引用其它对象,但是最后还是会被垃圾收集器回收。程序有时候也需要在对象回收后被通知,以告知对象的可达性发生变更。Java提供了四种不..
分类:
编程语言 时间:
2017-04-14 21:35:52
阅读次数:
199
java是面向对象的语言,与对象息息相关, 无时无刻都在创建对象, 对于创建对象,最熟悉的就是new 一个对象出来。 Object obj = new Object(); 那么这个new 的过程在虚拟机之中又是怎么实现的呢? 通过阅读《JVM虚拟机》2.3.1对象的创建,简单总结了一下对象创建的过程 ...
分类:
其他好文 时间:
2017-04-14 14:11:44
阅读次数:
158
Grabage Collection GC
GC要完成的三件事情:
哪些内存需要回收?
什么时候回收?
如何回收?
内存运行时区域的各个部分中:
程序计数器、虚拟机栈、本...
分类:
编程语言 时间:
2017-04-13 18:12:41
阅读次数:
195
趁着写完小论文还未彻底消散的学习氛围,开始着重巩固自己JavaScript的基础知识,为秋招做最基本的准备。 基本类型包括:Undefined,Null,Boolean,Number和String,基本类型是按值访问方式; 引用类型的值是对象,是按引用方式引用; 在复制变量值时,两种数据类型的差异表 ...
分类:
编程语言 时间:
2017-04-12 19:57:04
阅读次数:
163
在堆中存放着几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事就是要确定这些对象之中哪些还活着,哪些对象已经死去. 判断对象是否已经死亡有以下几种算法: 定义 : 给对象中添加一个引用计数器,当有一个地方引用时,计数器加1,引用失效时,就减1,当对象的引用计数器为0时,对象就是不可再被使用的. ...
分类:
编程语言 时间:
2017-04-11 11:52:52
阅读次数:
205
堆内存设置 原理 JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Ed ...
分类:
编程语言 时间:
2017-04-06 11:52:00
阅读次数:
183
书接上文,在了解JVM的分代模型后,接着来简单聊聊JVM中GC算法和不同的GC收集器【求关注】 GC回收算法 一个GC回收算法通常会做这么几件事: 1、遍历内存,找到被引用的对象 2、清理掉这些未被标记对象的内存 3、被清理掉的内存放回内存中,供其他地方使用 上文也提及过,目前JVM中的搜索引用对象 ...
分类:
其他好文 时间:
2017-04-05 23:44:55
阅读次数:
281
书中笔记: 也许并不会死: 要宣告回收一个对象死亡,至少要经历两次标记过程: 当可达性分析发现一个对象不可达的时候,将标记第一次并进行筛选,筛选的条件是此对象是否有必要执行finalize()方法,当对象没有覆盖finalize或者已被调用过,则虚拟机认为此对象没必要执行finalize, 如果判断... ...
分类:
其他好文 时间:
2017-04-05 20:27:26
阅读次数:
256
转自http://www.cnblogs.com/kaituorensheng/p/4449457.html 在python中,为了解决内存泄漏的问题,采用了对象引用计数,并基于引用计数实现自动垃圾回收. 内存泄漏:也称作"存储渗漏".用动态 存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致 ...
分类:
编程语言 时间:
2017-04-05 19:09:25
阅读次数:
244