如何在JAVA中获得静态构造函数的功能?

时间:2015-05-24 20:02:21

标签: java constructor static static-constructor

我正在学习C#和JAVA我在C#中发现了Static Constructor,它用于初始化任何静态数据,或者执行仅需要执行一次的特定操作。在创建第一个实例或引用任何静态成员之前会自动调用它。

例如:

class SimpleClass
{
    // Static variable that must be initialized at run time. 
    static readonly long baseline;

    // Static constructor is called at most one time, before any 
    // instance constructor is invoked or member is accessed. 
    static SimpleClass()
    {
        baseline = DateTime.Now.Ticks;
    }
}

我的问题是,如何才能在JAVA中获得相同的功能?

2 个答案:

答案 0 :(得分:4)

你有静态初始化程序块。

static final long baseline;
static {
    baseline = ...
}

答案 1 :(得分:4)

您可以像这样使用静态初始化块 -

class SimpleClass
{
    static{

    }

}  

静态块只会被调用一次,无论该类型的对象有多少被创建。

您可能会看到此link以获取更多详细信息。

只有在将类加载到内存中时才会调用

更新: static初始化块。