我最近在接受以下代码的采访时被问到与 java 相关的问题,因为我对 java 很陌生,几乎没有用 Java 编写代码,所以我真的不知道下面的代码做了什么。
问题是使用以下代码选择描述最糟糕情况的选项:
public class Bolton {
private static Bolton INST = null;
public static Bolton getInstance()
{
if ( INST == null )
{
INST = new Bolton();
}
return INST;
}
private Bolton() {
}
}
这是这个问题的选项
- 可以创建多个 Bolton 实例
- 博尔顿永远不会被创造出来
- 构造函数是私有的,不能被调用
- 值可以被垃圾回收,调用 getInstance 可能会返回垃圾数据
以上哪个选项是正确的?为什么?