在以下两种情况下完成静态类成员初始化的时间是否有所不同:
(1)
static ArrayList<String> x = new ArrayList<String>();
(2)
static ArrayList<String> x;
static
{
x = new ArrayList<String>();
}
据我所知,它们实际上等效,并且都保证x只能一次初始化一次,并且可以在任何类方法或构造函数对其进行修改之前进行
。答案 0 :(得分:0)
第一种方法不太容易出错,例如,您可以有一个调用x.get(0);
的静态块,它将产生NullPointerException`