一个java数组的问题NullPointerException

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:58:02
String[] by1=new String[100];
by1[0]="功夫熊猫 ";
by1[1]="他是我的";
for(int i=0;i<by1.length;i++)
{

System.out.println(by1[i]);
}
为什么我的数组是空呀~~~

你的数组不是空的
只是数组的前两项有值 分别是功夫熊猫 和他是我的
剩下的都没有赋初值,java出于安全方面的考虑,会把所有未赋初值的变量给定一个初值,对象数组会给它null值,int这种非对象数组会给初值0

你已经定义了数组的长度为100
循环输出要输出后面的内容
因而肯可能为空的呀
可能是吧

因为你定义的数组String[] by1=new String[100];长度为100,
而只有第一个和第二个元素赋值了
by1[0]="功夫熊猫 ";
by1[1]="他是我的";
而其他的字符串全为null,因此当你循环输出每个字符串时,输出到第三个时,就会输出null,但应该不会出现NullPointerException问题。

因为你只为by1[0]和by1[1]初始化了~~其他的没有初始化所以从下标2-99都是null的~(by1.length = 100)

- =
因为你没赋值
你只对 0,1赋值了
后面的 数组元素都为null

by1.length ==100

循环到by[2]的时候就会抛出这个异常


for(String s : by1)
试下