| 
 
| 刚刚在一个帖子中看到的问题,以前没有怎么注意。 复制代码[/code][code]01.String a = "ab";  
02.   String b = "a" + "b";//这里会被编译器自动优化成b = "ab";  
03.     
04.   String aa = "a";  
05.   String bb = "a";  
06.     
07.   String c = aa+bb;  
08.   //由于和字面量"b"进行+运算的是一个对象而不是字面量,  
09.   //这样Java虚拟机就会在堆里面生成一个新的对象并返回该对象引用  
10.   String d = aa+"b";  
11.   String e = "a"+bb;  
12.     
13.   System.out.println(a == b);//因此,只有第一个是true  
14.   System.out.println(a == c);  
15.   System.out.println(a == d);  
16.   System.out.println(a == e);  
17.     
18.   System.out.println(d == e);  
 | 
 |