在没有final关键字的静态字段上需要RealTimeExample

时间:2011-08-29 14:27:44

标签: java

您能否解释一下我没有最终关键字的静态字段的实时场景(或)JAVA API示例?

我在Runtime.java中看到过;制作单身人士他们已声明如下

private static Runtime currentRuntime = new Runtime();

但是我们还需要最终权利吗?

3 个答案:

答案 0 :(得分:2)

  

但是我们还需要最终权利吗?

错误。

静态初始化是线程安全的,没有最终,请参阅VM spec 2.17.5

在这样的情况下final是必要的想法是错误的,我在one of my recent answers中已经嗤之以鼻。

Runtime.java之类的情况下,final可能仅对帮助避免错误地重新分配字段有用 - 假设它不打算重新分配。

答案 1 :(得分:2)

某些类型的所有实例的计数器:

class MyClass {
    private static int count = 0;
    public MyClass() {
        count++;
    }
    public static int getCount() {
        return count;
    }
}

其他例子是经典的单身人士模式。

答案 2 :(得分:1)

在许多情况下,不需要final。例如:

public class Receipt {
    private static long nextId = 0;

    public static long getNextId() {
        return ++nextId;
    }

    . . .
}