数据Android/Java学习日记@IT·互联网

3.Java 引用数据类型

2016-08-06  本文已影响343人  KaelQ

1.引用数据类型概论

2.引用数据类型分类

3.引用分类

一句话,空间不回收。

一句话,空间不足就回收。

//使用软引用
Stringstr=newString("hi~");
SoftReferenceaSoft = newSoftReference(str);
str=null;
//获取软引用的实例到强引用,如果已被回收,则返回null。
String str2=(String)aSoft.get();

一句话,发现就回收。

//使用弱引用
Stringstr=newString("hi~");
WeakReference aWeak =new WeakReference(str);
str=null;
//获取弱引用的实例到强引用,如果已被回收,则返回null。
String str2=(String)aWeak.get();

一句话,任何时候回收。

虚引用必须要和ReferenceQueue一起使用。ReferenceQueue是一种队列,java虚拟机将垃圾回收的对象放入其中。(ReferenceQueue也可以和软引用弱引用一起使用)。

Stringstr=newString("hi~");
ReferenceQueueq=newReferenceQueue ();
PhantomReferencepr=newPhantomReference (str,q);
str=null;

4.问题

String str1=new String("hi~");
String str2=str1;
String str3=new String(str2);
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));

结果为:

true
false
true
true
上一篇下一篇

猜你喜欢

热点阅读