java中的静态区域是什么意思?

时间:2013-07-29 21:45:36

标签: java android

我遇到了以下代码:

public final class MainActivity extends ActivityBase

{

    static

    {
        Logger.create();      
    }
...

}

这样的static区域是什么意思?

使用这种语法有什么好处?

3 个答案:

答案 0 :(得分:4)

官方文件

静态初始化块是包含在其中的正常代码块  大括号,{},并以static关键字开头。这是一个例子:

 static {
     // whatever code is needed for initialization goes here }

一个类可以有任意数量的静态初始化块,它们可以  出现在课堂体内的任何地方。运行时系统保证  静态初始化块按它们出现的顺序调用  在源代码中。

有静态块的替代方法 - 您可以编写私有

静态方法:

 class Whatever {
     public static varType myVar = initializeClassVariable();

     private static varType initializeClassVariable() {

         // initialization code goes here
     } 
 } 
  

私有静态方法的优点是,如果需要重新初始化类变量,它们可以在以后重用。

答案 1 :(得分:2)

每当加载(导入)类时,static块都将执行。它通常用于初始化静态变量等等。

答案 2 :(得分:1)

这是static initializer。它允许通过使用一组语句而不仅仅是表达式来初始化static变量(甚至是static final)。

在这种情况下,即使没有创建类的实例,它也会在首次引用类时执行活动。