在Java中用静态块创建对象的优点和缺点是什么?
对于一些Java专家来说,这个问题可能是个错误。但是我想知道为什么我们用静态方法创建对象,比如main,而不是staticblock。 我理解,如果我们在静态块中实例化,当然如果我们不进一步使用它,它将不必要地创建对象。这种方法还有其他需要注意的事项吗?我们能把这和单例模式联系起来吗 例如:在Java中用静态块创建对象的优点和缺点是什么?,java,singleton,instantiation,static-block,Java,Singleton,Instantiation,Static Block,对于一些Java专家来说,这个问题可能是个错误。但是我想知道为什么我们用静态方法创建对象,比如main,而不是staticblock。 我理解,如果我们在静态块中实例化,当然如果我们不进一步使用它,它将不必要地创建对象。这种方法还有其他需要注意的事项吗?我们能把这和单例模式联系起来吗 例如: public class MyClass { static { AnotherClass object = new AnotherClass(); // D
public class MyClass {
static {
AnotherClass object = new AnotherClass();
// Do Some operations here with object.
}
}
主要原因是控制它实际执行的时间。 静态块中的内容将在第一次加载类时执行,并且很容易意外地导致加载类,例如,通过引用类上的常量 拥有静态方法意味着您可以完全控制何时调用该方法,因为您必须显式地调用它 关于单例,用于急切加载的单例的java习惯用法将实例初始化为静态字段。这将基本上与静态块一样运行
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
静态方法中的对象,如main,但不在静态块中:你是什么意思?任何代码示例?尽可能多地限制变量的范围是良好的一般实践。如果你只打算在一个方法中使用一个变量,你应该试着把它的作用域限制在这个方法中。我可以在我的静态方法上加一个名称,表明它的用途,但在静态块中我不能这样做。