java 非静态类中 宣言该类的静态类实例 其他类中 为什么能够不实例就能调用 该类的非静态方法

java 非静态类中 声明该类的静态类实例 其他类中 为什么能够不实例就能调用 该类的非静态方法
public  class FirstGroup extends ActivityGroup{
 public static FirstGroup group;
 private ArrayList<View> history;

public void  launch(String id, Intent intent){
addHistory(setContent(id,intent));
}

private void addHistory(View view)
{
history.add(view);
}

}

另一个类中
public class ListActivity extends BaseActivity{

 mListView.setOnItemClickListener(new OnItemClickListener() {
 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
FirstGroup.group.launch("DetailActivity", DetailActivity.launch    
                             (ListActivity.this, temp));
}
});       

}

怎么可以直接这样调用呢FirstGroup.group.launch() 这样可以吗?
------解决方案--------------------
你要知道static的变量或方法都是类加载后就可以用的,不必调用构造函数生成对象,此时history是空的

你这样写,程序走到访问history那里会空指针