刚刚在一个帖子中看到的问题,以前没有怎么注意。
这是一个非常好的面试题!
String aa = "a";
String bb = "a";
String c = aa+bb;
//由于和字面量"b"进行+运算的是一个对象而不是字面量,
//这样Java虚拟机就会在堆里面生成一个新的对象并返回该对象引用
String d = aa+"b";
String e = "a"+bb;
System.out.println(a == b);//因此,只有第一个是true
System.out.println(a == c);
System.out.println(a == d);
System.out.println(a == e);
System.out.println(d == e);