public static void main(String[] args) {
// TODO 自动生成方法存根
String jString=null;
System.out.println(jString.equals(null));

}
我在Eclipse下试的,为什么会出现
Exception in thread "main" java.lang.NullPointerException
at print.main(print.java:10)说的好像是空指针异常,各位高手请解释一下这是为什么?
还有个小小问题
定义3个数组,
int [] a=new int[5];
int [] b=new int[6];
int [] c=new int [7];
在随机方法给这3个数组赋值(在0-100以内),且3个数组里面的数都不相等
麻烦讲一下思路,谢了

解决方案 »

  1.   

    因为你String对象,还没有初始化就调用了equals()方法,所以会抛出一个空引用的异常
      

  2.   

     jString对象没有赋值,不能调用equals()方法
      

  3.   

    jString.equals(null)); jString为空,没有赋值,所以调用equals时,会抛出空指针异常
    Ps:下面的数组问题,LZ可以用随机数生成器去实现,当然,要加个判断了
      

  4.   

    String jString=null;
    不能说是赋值吗, 
    能不能说具体该怎么改呀
      

  5.   

    jString需要初始化才行啊。
    数组的问题最简单可以让3个数组分别在0-100的三个段内取随机数
      

  6.   

    String jString=null;
    System.out.println(null==jString);
    这样改就行了,没有必要使用equals
      

  7.   

    如果你要比较的是字符串“null”的话
    String jString=null; 
    System.out.println("null".equals(jString)); 
      

  8.   

    String jString=""; 
    System.out.println("".equals(jString)); 
      

  9.   

    lz还没清楚
    ==,equals()
    的问题
      

  10.   

    第一问就不用回答了,同意楼上的......
    第二问:
    import java.util.HashSet;
    import java.util.Random;
    import java.util.Set;public class Child {
    public static void main(String[] args) {
    Random r = new Random(47);
    int [] a=new int[5]; 
    int [] b=new int[6]; 
    int [] c=new int [7]; 
    f(a,r);
    f(b,r);
    f(c,r);
    show(a);
    show(b);
    show(c);
    }
    static void f(int[] arrays,Random r){ Set<Integer> set = new HashSet<Integer>(); //目的是数组里面的数不相等
    for(int i = 0;i<arrays.length;){
    int m = r.nextInt(100);
    if(set.add(m)){
    arrays[i] = m;
    i++;
    }
    }
    }
    static void show(int[] arrays){
    System.out.println("Arrays :");
    for(int i:arrays){
    System.out.println(i);
    }
    }
    }
      

  11.   

    = and equals()
     去百度或者google
      一个地址 和内容的问题!
      

  12.   

    如果一个对象被赋值为null或者没有初始化,当此对象再调用其他方法时,会抛出java.lang.NullPointerException异常
      

  13.   

    第一个问题呢,,是equals这个方法本身的问题,,,
    他的前面的对象不能为null
    举个例子,,
    "ab".equals(d);
    这个当d为null时候是没问题的,,
    但你要写成,,
    d.equals("ab");
    当d为null时候就会抛出空指针的错误了,,
    这是String中的等于的源码,,
      public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
    char v1[] = value;
    char v2[] = anotherString.value;
    int i = offset;
    int j = anotherString.offset;
    while (n-- != 0) {
        if (v1[i++] != v2[j++])
    return false;
    }
    return true;
        }
    }
    return false;
        }
      

  14.   

    class S 
    {
    public static void main(String[] args)throws Exception //指出异常位置

      // TODO 自动生成方法存根 
    String jString=null; 
    System.out.println(jString.equals(null)); 

    } 错误在System.out.println(jString.equals(null)); 说明jString没有分配内存,也就是没有实例化,所以不能调用equals方法
      

  15.   

    String jString=null; 是空对象
    你要改成 String jString="null"; 或不把空对象赋给jString ;
      

  16.   

    正确!!!
    首先你要是写成null表示你申请的是一个对象,但是没有赋值。
    要是使用“”表示你的对象已经已经有了,并且赋值,所以就正确了
      

  17.   

    null表示的是空指针,肯定不能出现null.equals("")的。
    用空指针来调用方法当然会抛出无指针的异常。
      

  18.   

    你要是写成null表示你申请一个对象,但是没有赋值
    “”表示你既申请了对象又赋了值,所以后面的那句应改为("".equals(jString))