在阅读书籍,浏览关于Java中引用类型的网络之后,我仍有一些疑问(或者我可能已经将这个概念解释错了).
如果有人明白我的疑虑,对我来说将是一个很大的帮助.
让我举一个包含类变量,实例变量和局部变量的类的例子.
public class Test {
public static ArrayList<String> listCommon = new ArrayList<String>();
private HashMap<String, String> mapInstance;
public Test() {
mapInstance = new HashMap<String, String>();
}
public void doSomething(String key) {
ArrayList<String> local = new ArrayList<String>();
if(key != null){
local.add(mapInstance.get(key));
}
System.out.println("Value is added in instance Map: ", mapInstance.get(key));
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是;
1. listCommon(静态变量)和mapInstance(实例变量)对垃圾收集器的强引用?
2.变量local(在方法中定义和使用)是弱参考吗?
3. Phantom参考和Soft参考如何出现?
4.或以上3个概念无效; 是否只有在显式使用java.lang.ref包中定义的类型时,Java才定义引用?
任何帮助对我来说都很棒.
use*_*421 11
- 是listCommon(静态变量)和mapInstance(实例变量)对垃圾收集器的强引用?
他们是强有力的参考,是的.
- 变量局部(在方法中定义和使用)是弱参考吗?
不,它是一个局部变量,所以它是一个变量,因此它仍然是一个强大的参考.
- Phantom参考和Soft参考如何出现?
如果你使用它们.如果您不使用它们,则无需担心它们.它们用于编写各种缓存.
- 或以上3个概念无效; 是否只有在显式使用java.lang.ref包中定义的类型时,Java才定义引用?
参考变量总是很强.只有在明确使用它们时才会出现其他类型.
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |