Java 非最终的私有静态字段?
有人能给我举个例子,说明你什么时候会在Java 非最终的私有静态字段?,java,static,final,Java,Static,Final,有人能给我举个例子,说明你什么时候会在私有静态最终字段上使用私有静态字段吗?我很难想出一个例子,说明什么时候你想要声明一个private类变量,这个变量可能会发生变化。是的 例如,当您想用一个计数器变量来计算从一个类创建了多少个对象时,您将使其成为静态的——它与该类关联,而不是对象,但它不是最终的,因为它在变化: protected static int counter = 0; //constructor counter++; 值得一提的是: 我没有提到Singleton示例,因为如果希
私有静态最终
字段上使用私有静态
字段吗?我很难想出一个例子,说明什么时候你想要声明一个private
类变量,这个变量可能会发生变化。是的
例如,当您想用一个计数器变量来计算从一个类创建了多少个对象时,您将使其成为静态的
——它与该类关联,而不是对象,但它不是最终的
,因为它在变化:
protected static int counter = 0;
//constructor
counter++;
值得一提的是:
我没有提到Singleton示例,因为如果希望线程安全,变量必须是
static
和final
输入单例模式:
public class Clazz {
public static void main(String[] args) {
MyObject myObject = MyObject.getInstance();
}
}
class MyObject {
private static MyObject instance;
//I belong to the class, but I need not be created before somebody wants me.
private MyObject() {
}
public static MyObject getInstance() {
if (instance == null) {
instance = new MyObject();
}
return instance;
}
}
现在您提到它似乎是一个显而易见的用例;您可以同步初始化块。有一个线程安全的、延迟加载的单例是可能的。当然!我自己也用过!我就是不记得了!它可以是
final
,因为它只分配了一次。@marounnaroun首选的方法是什么?决赛还是不决赛?