首页 新闻 会员 周边 捐助

Java引用分为强引用、软引用、弱引用、虚引用,我怎么能判断出一个对象是哪个引用?

0
[已解决问题] 解决于 2020-10-13 11:16

Java引用分为强引用、软引用、弱引用、虚引用,我怎么能判断出一个对象是哪个引用?

renguanyu的主页 renguanyu | 小虾三级 | 园豆:841
提问于:2020-07-02 08:16
< >
分享
最佳答案
0

首先你应该知道对象不属于某种引用,对象大多数时候是存放在堆中的,只有对象被引用了,才会说引用类型是哪种引用,而不应该说对象是哪种引用。因为同一个对象是可以同时被做个引用变量引用的。楼上说的new出来的都是强引用这种说法也很笼统,用关键字new创建对象只是创建对象的一种方式。比如创建一个软引用SoftReference<Object> sr = new SoftReference<>(new Object()); 这时应该说sr是软引用,而new Object()得到的对象是被绑定在这个软引用上的,但是sr本身是强引用。所以在判断引用类型的时候,应该从引用出发去找,因为一个对象可能同时被强引用了,也被软引用了。再举个例子:
Object o = new Object();
SoftReference<Object> sr = new SoftReference<>(o);
这个例子的o对象就是既被强引用了,又被软引用了。

奖励园豆:5
我是满意吖 | 菜鸟二级 |园豆:386 | 2020-07-02 12:14
其他回答(2)
0
Blog老中医 | 园豆:236 (菜鸟二级) | 2020-07-02 09:25

 👍 

支持(0) 反对(0) renguanyu | 园豆:841 (小虾三级) | 2020-10-13 11:00
0

new出来的都是强引用,软引用、弱引用、虚引用都是编程的方式使用的,只要是你在用的,你自己没用编程方式去引用,那就都是强引用

yytxdy | 园豆:1680 (小虾三级) | 2020-07-02 09:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册