public class Test1
{
public static void main(String[] args)
{
Person[] ps=new Person[100];
System.out.println(ps.length);
//ps[0].name="zhangsan";             //抛出空指针异常
String[] str=new String[100];
System.out.println(str.length);
str[0]="zhangsan";
}
}class Person
{
public String name;
}
两个同样是引用数组初始化,分配好空间后都能打印出长度。(顺便问下,这个.length是什么?方法的话要加(),是成员变量的话,ps.length怎么能访问?)
当通过引用变量访问实例属性或者非静态方法时,该引用为空时,会引发NullPointerException,
那么String数组类型的,怎么没有抛出空指针异常?

解决方案 »

  1.   

    闷...我也糊涂了,坐等解答...
    只知道如果将name定义成public static String name;就不会抛出异常了...
      

  2.   

    Person[] ps=new Person[100];这样只是声明了一个长度为100的Person数组,数组的每个成员都是null
      

  3.   

    String呢?莫非用到缓冲区的东西了?
      

  4.   

    length是final的成员变量,属于数组的。
    ps[0].name="zhangsan";  和 str[0]="zhangsan";有本质的不同,str[0] = "zhangsan"相当于
    {
           Person p = new Person();
           ps[0] = p;        
    }
    如果把str[0] = "zhangsan"换成str[0].charAt(0),LZ试试会不会报空指针异常?
      

  5.   

    是数组的话就只有.length属性,但是如果数组的元素是String类型的那么就有.length();  字符串有length();不知lz是否是要这个答案。
      

  6.   

    抛出空指针异常表明你的ps[0]没有初始化,我给你稍作修改,代码如下public class Test1 {

        public static void main(String[] args)
        {
            Person[] ps=new Person[100];
            System.out.println(ps.length);
            ps[0]=new Person("zhangsan");
            //ps[0].name="zhangsan";             //抛出空指针异常
            System.out.println(ps[0].name);
            String[] str=new String[100];
            System.out.println(str.length);
            str[0]="zhangsan";
        }
    } class Person
    {
       public String name;
       public Person(String name){
       this.name=name;
       }
    }
      

  7.   

    .length肯定是成员变量,也就是属性,你说了方法的话要加(),这是常识。
    Person[] ps=new Person[100];这只是创建了指向Person数组的引用,实际对象并未初始化,
    对象数组(不是基本类型数组)的特点。你必须先NEW一个对象Person[] ps=new Person[10];
    ps[0] = new Person();
    ps[0].name="zhangsan"; 
      

  8.   

    .length应该就是一个全局变量吧,length()就是 return length;咯。
      

  9.   

    public static void main(*string args)?
    可以不?
    我也想来问问看!·#¥
    呵呵呵。