什么是WeakReference呢?它有什么特点呢?
来源:互联网 发布:软件测试基本理论知识 编辑:程序博客网 时间:2024/04/29 19:43
从JDK1.2开始,Java把对象的引用分为四种级别,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。
强引用
我们一般使用的就是强引用,垃圾回收器一般都不会对其进行回收操作。当内存空间不足时Java虚拟机宁愿抛出OutOfMemoryError错误使程序异常终止,也不会回收具有强引用的对象软引用
如果一个对象具有软引用(SoftReference),在内存空间足够的时候GC不会回收它,如果内存空间不足了GC就会回收这些对象的内存空间。弱引用
如果一个对象具有弱引用(WeakReference),那么当GC线程扫描的过程中一旦发现某个对象只具有弱引用而不存在强引用时不管当前内存空间足够与否GC都会回收它的内存。由于垃圾回收器是一个优先级较低的线程,所以不一定会很快发现那些只具有弱引用的对象。为了防止内存溢出,在处理一些占用内存大而且生命周期较长的对象时候,可以尽量使用软引用和弱引用.虚引用
虚引用(PhantomReference)与其他三种引用都不同,它并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。所以,虚引用主要用来跟踪对象被垃圾回收器回收的活动,在一般的开发中并不会使用它
0 0
- 什么是WeakReference呢?它有什么特点呢?
- pvfs2 有什么特点呢?
- 什么是seo 呢,有什么效果呢?
- 你说它有什么功能呢
- 什么是Spring, 它有什么特点?
- 什么是spring,它有什么特点?
- 什么是VPN呢?VPN有什么用?
- Spring面试:什么是Spring, 它有什么特点
- IsPostBack有什么作用呢?
- IsPostBack有什么作用呢?
- 模型有什么用呢?
- 重载有什么意义呢?
- IEnumerator对象有什么呢?
- 金银花有什么作用呢
- rpm与deb都是什么呢 有什么区别呢
- 什么是SVN? 什么是CVS? SVN跟CVS又有什么关系呢?
- RAC和Standby各有什么特点和作用,如何选择呢?
- 什么是通用项目周期?它有什么样的特点?对其它项目有什么启示?
- Jetty Continuation源码学习
- LeetCode OJ:Two sum
- 我也谈谈guice, 简单就是美
- 支付宝即时到账接口
- 【Leetcode】448. Find All Numbers Disappeared in an Array
- 什么是WeakReference呢?它有什么特点呢?
- Java自动拆箱装箱
- 循环队列
- Google ZXing系列讲解(二)——生成WIFi二维码
- oracle入门
- 最新Android 黄油刀(Butterknife)的简单使用
- bzoj2243 [SDOI2011]染色
- 20170222
- Mac搭建nginx服务器搭建 +rtmp