一、概念
对大部分对象而言,程序里会有一个引用变量引用该对象,这是最常见的引用方式。除此之外,java.lang.ref包下提供了3个类:SoftReference、WeakReference、PhantomReference,它们分别代表了系统对对象的3种引用方式:软引用、弱引用、虚引用。因此java语言对对象的引用有如下4种方式:
1、强引用(StrongReference)
这是java程序中最常见的引用方式。程序创建一个对象,并把这个对象赋给一个引用变量,程序通过该引用变量来操作实际的对象,之前使用的对象和数组都采用了这种强引用的方式。当一个对象被一个或一个以上的引用变量所引用时,它处于可达状态,不可能被系统垃圾回收机制回收。
2、软引用(SoftReference)
软引用通过SoftReference类来实现,当一个类只有软引用时,它有可能被垃圾回收机制回收。对于只有软引用的对象而言,当系统内存空间足够时,它不会被系统回收,程序也可使用该对象;当系统内存空间不足时,系统可能会回收他。软引用通常用于对内存敏感的程序中。
3、弱引用(WeakReference)
弱引用通过WeakReference类实现,弱引用和软引用很像,但弱引用的引用级别更低。对于只有弱引用的对象而言,当系统垃圾回收机制运行时,无论系统内存是否够用,总会回收该对象所占用的内存。当然并不是说当一个对象只有弱引用时,他就会立即被回收--正如那些失去引用的对象一样,必须等到系统垃圾回收机制运行时才会被回收。
4、虚引用(PhantomReference)
虚引用通过PhantomReference类实现,虚引用完全类似于没有引用。虚引用对对象本身没有太大影响,对象甚至感觉不到虚引用的存在。如果一个对象只有一个虚引用,那么它和没有引用的效果大致相同。虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,虚引用必须和引用队列(ReferenceQueue)联合使用。
相关推荐
1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就应用变量。 5、未用new初始化对象。...10、重复定义造成未将对象引用设置到对象的实例错误.
“System.NullReferenceException: 未将对象引用设置到对象的实例”问题可能原因如下: 1、ViewState 对象为Null。 2、DateSet 空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就...
通过代码简述值引用与对象引用的区别
c# DataGridView 导出数据到sql中出现错误“未将对象引用设置到对象实例中”
"未将对象引用设置到对象的实例"錯誤個人總結
//a是Null对象 protected void Page_Load(object sender, EventArgs e) { a.ToString();//调用一个Null对象的方法 } 当然啦!结果就如下图了: 这么赤裸裸的写出这种代码,不太容易,通常更倾向于下面一种: 2:...
在实际中,使用对象引用作函数参数要比使用对象指针作函数更普遍,这是因为使用对象引用作函数参数具有用对象指针作函数参数的优点,而用对象引用作函数参数将更简单,更直接。所以,在C++编程中,人们喜欢用对象...
对象引用分析图解,描述了java对象引用在栈、堆中的分布及作用。
Vehicle veh1 = new Vehicle(); 通常把这条语句的动作称之为创建一个对象,其实,它包含了...所谓Vehicle类引用,就是以后可以用来指向Vehicle对象的对象引用。 4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。
在JAVA里,“=”不能被看成是一个赋值语句,它不是在把一个对象赋给另外一个对象,它的执行过程实质上是将右边对象的地址传给了左边的引用,使得左边的引用指向了右边的对象。JAVA表面上看起来没有指针,但它的引用...
corba 对象引用获取最简单的方式就是通过对象字符串。本资源是关于对象引用获取的一个简单的例子。
java 关于引用容易混淆,本文档对此进行整理 对java对象引用易混解析 举例解释
未将对象引用设置到对象的实例 一、网络上的一般说法 1、ViewState对象为Null。 2、DateSet空。 3、sql语句或Datebase的原因导致DataReader空。 4、声明字符串变量时未赋空值就应用变量。 5、未用new初始化对象。 6...
对象指针和对象引用作函数的参数-Read.pptx
面向对象程序设计,即C++语言,类。函数的参数是类的对象引用,文件里面有详细的注释。
PHP变量引用(&)、函数引用和对象引用_.docx
对象引用指针调用虚函数源程序实例,帮助初学者理解虚函数的用法
未将对象引用设置到对象的实例的一个另类解决方法