求教:
String str = new String("abc");
"abc".equals(str) 和 str.equals("abc") 有不同之处么?哪个更好?

解决方案 »

  1.   

    正常情况下结果都一样,但是第一种写法没有任何风险;第二种写法有风险,当str为null时,会报NullPointerException
      

  2.   

    第二种,abc会被new一个String对象出来,然后才比较内容的值
      

  3.   


    正常情况下结果都一样,但是第一种写法没有任何风险;第二种写法有风险,当str为null时,会报NullPointerException
      

  4.   

    java之中有个原则:变量在调用之前,必须保证被初始化
    String str;         //只声明str而没初始化
    str.equals("asd");  //NullPointerException
    "asd".equals(str)   //str默认为null,编译通过。
      

  5.   


    String str = new String("abc");
    "abc".equals(str) 和 str.equals("abc")
    肯定是"abc".equals(str) 这个更好。
      

  6.   

    在你这个例子里没区别,但是如果str是从其他方式得到,不确定值,要用第一种防止它为null