Byte b = new Byte(1);
if(b.toString()==b.toString()){
System.out.println("true");
}else{
System.out.println(false);
}
String s = new String("1");
if(s.toString() == s.toString()){
System.out.println("true");
}else{
System.out.println(false);
}
为什么结果是false,true?
}

解决方案 »

  1.   

    b是Byte型的在他的toString方法中,他会新建一个字符串来存储这个结果字符串,所以两个toString方法新建了两个字符串,他们的存储空间是不一样的所以b.toString() == b.toString()是false;
    而s是string类型,在他的toString方法中他会return this所以两s.toString都是s,他们的存储空间是一样的,所以s.toString() == s.toString()是true