对于您的示例,没有区别。但是如您所见,
public static String myString = "Hello World!";
只能接受一个表达式来初始化变量。但是,在静态初始化器(JLS
8.7)中,可以执行任意数量的语句。例如,可以这样做:
static{ myString = "Hello"; myString += " "; myString += "World";}对于您的示例,显然不需要这样做,但是变量的初始化可能不仅仅使用表达式,甚至可能包含许多语句,因此Java制作了静态初始化器。



