Java里面定义数组的时候并没有给数组元素分配内存,只是给数组整体分了内存,所以里面的每个对象都需要new.例如:
A[] a=new A[2];
for(int i=0;i<2;i++)
   a[i] = new A();
这样才能a[i].someMethod()
所以你的tail[0] tail[1]还需要new.