麻烦看下为什么运行时会报空指针异常

public static void test() {
String[] str = new String[1024];
for (int i = 0; i < 200; i++) {
str[i] = "23232";
}
int max = 0;
for (int i = 1; i < str.length-1; i++) {
if (str[i].length() > 0)
max += 1;

    }
    System.out.print(max);
}

你的字符串数组的长度为1024,而你只初始化了前200个元素,后面的元素没有初始化,默认为NULL,因此报空指针异常

因为你上面赋值的时候只赋到第200位,从第200位开始,后面的全是空,下面取值却取到1024位

你的字符串数组的长度为1024,而你只初始化了前200个元素,后面的元素没有初始化,默认为NULL,因此报空指针异常

长度为1024,200以后都未赋值

各楼都给了正确答案,你自己看来是小白 多思考.