先来看个代码,这是个错误的代码public class Test2 {
public static void main(String[] args) {
String str [] = null;//声明
str[] = new String[8] ;//分配数量空间
for(int i=0; i<8; i++)
str[i] = new String() ;//为每一个分配的实例化
}
}
为什么这个是错的 ? 
而如果把str[] = new String[8]删掉就对了?再看一个正确的代码:public class Test2 {
public static void main(String[] args) {
String []str = new String[8] ;//声明并分配空间
for(int i=0; i<8; i++){
str[i] = new String() ;//实例化
}
}
}而直接写String []str = new String[8];,后面实例化就没问题了,why ?