在声明静态变量时初始化它与在静态块中初始化它有什么区别?

时间:2021-06-24 06:41:20

标签: java variables initialization declaration

我在下面的链接中找到了这个用法,在第 5 步的服务定位器设计模式指南中 https://www.tutorialspoint.com/design_pattern/service_locator_pattern.htm

我不明白他们为什么使用这种结构。

public class ServiceLocator {
   private static Cache cache;

   static {
      cache = new Cache();      
   }
}

对比

   private static Cache cache = new Cache();

1 个答案:

答案 0 :(得分:0)

在此特定实例中,结果完全相同。如果您需要应用更多逻辑而不仅仅是简单的字段初始化,您可以使用静态块。

如果你的目标是提高代码可读性,你应该只初始化一个静态变量:

private static Cache cache = new Cache();