Ниже показано создание объекта singleton.
public class Map_en_US extends mapTree {
private static Map_en_US m_instance;
private Map_en_US() {}
static{
m_instance = new Map_en_US();
m_instance.init();
}
public static Map_en_US getInstance(){
return m_instance;
}
@Override
protected void init() {
//some code;
}
}
Мой вопрос в том, что является причиной использования статического блока для создания экземпляра. я знаком с приведенной ниже формой создания одноэлементности.
public static Map_en_US getInstance(){
if(m_instance==null)
m_instance = new Map_en_US();
}