Mark-Compact 标记压缩算法代托管代码/非托管代码弱引用(Weak References弱引用(weak reference)可以保持对对象的引用,同时允许垃圾收集器在它认为适当的垃圾收集时间释放对象,回收内存。假设有一个对象创建相对便宜,但需耗费大量的内存,如果希望保持这个对象,在应用程...
分类:
Web程序 时间:
2014-08-17 15:33:32
阅读次数:
288
垃圾回收 垃圾回收的三个问题: 哪些内存需要回收? 什么时候回收? 如何回收?1.哪些对象需要回收? 判断对象是否存活的办法: 引用计数算法:给对象中添加一个引用计数器,有一个地方引用就+1,引用失效就-1.只要计数器为0则对象已死。 优点:简单易实现; ...
分类:
其他好文 时间:
2014-08-15 01:19:16
阅读次数:
218
垃圾收集器是内存回收算法的具体实现。下图展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用。 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial收集器:串行收集器 一个单线程的收集器,但它的单线程的意义不仅仅是说明它只会使用一个CPU或一条线程去完...
分类:
编程语言 时间:
2014-08-14 10:55:38
阅读次数:
329
一、为什么需要垃圾收集机制?Java虚拟机的堆里存放这正在运行的java程序所创建的所有对象(new),但是没有明确代码释放它们。垃圾收集就是自动释放不再被程序所使用的对象的过程。二、垃圾收集器的工作?(1)当一个对象不再被程序所引用时,它所使用的堆空间可以被回收。释放过程中,垃圾收集器运行将要被释...
分类:
其他好文 时间:
2014-08-12 21:30:14
阅读次数:
258
今天去面试,遇到了这个问题,之前是有看过想过相应资料,不过到时直接语塞了,回来翻看一些资料,总结如下:1 原理找出那些不再继续使用的变量,然后释放其占用的内存,垃圾收集器会按照固定的时间间隔,或是咱们在代码预订的收集时间,去周期性的执行这个操作,完成垃圾的清理。2 局部变量的生命周期在函数执行的过程...
分类:
Web程序 时间:
2014-08-12 21:20:24
阅读次数:
242
java 语言的特点是: 强类型,制定了比较多的语言规范,尽可能在编译阶段检测出更多的错误及警告。 编译和解释,首先将源代码编译成codebyte,运行时,java的运行系统装载和链接需要执行的类,并做必要的优化后,解释执行字节码程序。 自动无用内存回收功能,系统有个垃圾收集器,自动收集程序不再使用...
分类:
编程语言 时间:
2014-08-11 00:02:50
阅读次数:
241
加菲猫Just have a little faith.C#弱引用.NET框架提供了另一有趣的特色,被用于实现多样的高速缓存。在.NET中弱引用通过System.WeakReference类实现。弱引用为引用的对象提供一项机制,使被引用的对象能够被垃圾收集器作用。ASP.NET高速缓存就使用了弱引用...
分类:
其他好文 时间:
2014-08-01 15:33:32
阅读次数:
279
(转)http://www.cnblogs.com/shudonghe/p/3457990.html文主要介绍,JVM的组件,自动垃圾收集器是如何工作的,分代垃圾收集器的收集过程,使如何用Visual VM来监视应用的虚拟机,以及JVM中垃圾收集器的种类。一、JVM架构1、HotSpot 架构Hot...
分类:
编程语言 时间:
2014-07-29 11:49:46
阅读次数:
415
垃圾收集算法
引用计数
堆中的每个对象都有一个引用计数,当对象被引用时引用计数加1,当对象的引用被重新赋值或超出有效区域时引用计数减1,当一个对象被回收后,它所引用的对象的引用计算减1。当一个对象的引用计数变为0时就被回收。
引用计数的优点:
垃圾收集器可以很快地执行,当一个对象的引用数为0时就可以回收这个对象,垃圾收集交织在程序的正常执行过程中,不用长时间中断程序的正...
分类:
编程语言 时间:
2014-06-24 22:11:09
阅读次数:
275
.Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结在什么情况下会出现OutOfMemonryException呢? 在我们试图新建一个对象时,而垃圾收集器又找不到任何可用内存时被抛出,这种情况下我们是可以捕获该异常的; 另一种情况是,CLR需要内存时...
分类:
Web程序 时间:
2014-06-18 17:31:18
阅读次数:
201