Java静态成员初始化

时间:2018-12-05 18:18:19

标签: java static member

在以下两种情况下完成静态类成员初始化的时间是否有所不同:

(1)

static ArrayList<String> x = new ArrayList<String>();

(2)

static ArrayList<String> x;
static
{
    x = new ArrayList<String>();
}

据我所知,它们实际上等效,并且都保证x只能一次初始化一次,并且可以在任何类方法或构造函数对其进行修改之前进行

1 个答案:

答案 0 :(得分:0)

第一种方法不太容易出错,例如,您可以有一个调用x.get(0);的静态块,它将产生NullPointerException`