独習JAVAのP.288理解度チェックの解答に

static {
grasshoppers = new Grasshopper[NUMGRASSHOPPERS];
for(int i = 0; i < NUMGRASSHOPPERS; i++) {
grasshoppers[i] = new Grasshopper();
}
}

なるモノがあったのですが、こんなふうにstatic をブロックでくくるのは
普通に書くのと違ってなにか意味があるのでしょうか?
個人的にはミスが増えそうな気がするんですが・・。