相关疑难解决方法(0)

793
推荐指数
17
解决办法
30万
查看次数

在Java中使用Enum作为单例的最佳方法是什么?

基于SO问题编写的最佳单例实现在Java中 - 即使用枚举创建单例 - 有什么区别/优点/缺点(构造函数省略)

public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后打电话 Elvis.INSTANCE.getAge()

public enum Elvis {
    INSTANCE;
    private int age;

    public static int getAge() {
        return INSTANCE.age;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后打电话 Elvis.getAge()

java singleton

85
推荐指数
4
解决办法
8万
查看次数

单身模式面试

我最近在接受以下代码的采访时被问及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() {
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是此问题的选项

  1. 可以创建多个Bolton实例
  2. 永远不会创造博尔顿
  3. 构造函数是私有的,无法调用
  4. 可以对值进行垃圾回收,并且对getInstance的调用可能会返回垃圾数据

以上哪个选项是正确的?为什么?

java singleton

9
推荐指数
1
解决办法
2441
查看次数

标签 统计

java ×3

singleton ×3

design-patterns ×1