Java对象的引用类型分为强引用、软引用、弱引用和虚应用
[b]强引用:[/b]
强引用就是普通的Java对象的创建,例如Object obj=new Object();其中obj就是一个强引用
[b]其余三种[/b]引用就是强引用的再次引用,这个再次引用必须是在强引用为null的情况下才有意义,因为有强引用的话直接使用强引用,干嘛要费尽周折使用别的引用呢。
[b]软引用:[/b]
除非堆内存不足,否则垃圾回收器不会回收软引用所指的Java对象占用的堆内存。
[b]弱引用:[/b]
垃圾回收器执行的时候回收在本次垃圾回收前、上次垃圾回收后创建的弱引用,明白?
[b]很显然:[/b]
强引用、软引用、弱引用都可以作为存放在内存中缓存,强引用缓存不会受垃圾回收期影响,长期存在;软引用缓存受垃圾回收器影响,在内存用尽之前;弱引用缓存在下一次垃圾回收之前有效。
[b]虚引用:[/b]
主要监控垃圾回收器对该对象的回收情况。
[b]强引用:[/b]
强引用就是普通的Java对象的创建,例如Object obj=new Object();其中obj就是一个强引用
[b]其余三种[/b]引用就是强引用的再次引用,这个再次引用必须是在强引用为null的情况下才有意义,因为有强引用的话直接使用强引用,干嘛要费尽周折使用别的引用呢。
[b]软引用:[/b]
除非堆内存不足,否则垃圾回收器不会回收软引用所指的Java对象占用的堆内存。
[b]弱引用:[/b]
垃圾回收器执行的时候回收在本次垃圾回收前、上次垃圾回收后创建的弱引用,明白?
[b]很显然:[/b]
强引用、软引用、弱引用都可以作为存放在内存中缓存,强引用缓存不会受垃圾回收期影响,长期存在;软引用缓存受垃圾回收器影响,在内存用尽之前;弱引用缓存在下一次垃圾回收之前有效。
[b]虚引用:[/b]
主要监控垃圾回收器对该对象的回收情况。