Java中,String   a   =   “A”及String   b   =   new   String(“A”),则a与b做等比较,即(a==b),会有何结果

解决方案 »

  1.   

    b只不过是"A"的副本,也就是另外一个。可以去看看 String 类中带 String 参数构造方法的 API DOC,上面说得很清楚,不要这样去用。
      

  2.   

    a是一个值类型的,而b是一个引用类型的,用==肯定是false
      

  3.   

    "a" == "a"
    "a"  != new String("a");
      

  4.   

    false,因为a是一个值类型的,而b是一个引用类型的,用==肯定是false,若用a.equals(b)则为true.
    《java编程思想》中有==和equals的具体用法.
      

  5.   

    a和b只不过是同一对象的不同引用,而==比较的就是对象的引用,所以自然结果为false.
      

  6.   

    == 基本类型比较时是比较值,引用类型比较时是比较地址是否相同,String不是基本类型
    比较两个字符串相等一般用equals方法String a ="" 的形式 是可共享的,比如说String a ="a"与Stirng b = "a"地址相同,a==b返回true
    String a = new String();是在堆里独立创建的对象,地址不同
      

  7.   

    false,其实你可以用a.getClass()和b.getClass方法看看a和b到底是什么
      

  8.   

    false!!!
    因为==比较的是内存地址,a,b两个引用在栈里的值是不同。