黑马程序员技术交流社区

标题: java中的“+”运算符,产生新对象问题 [打印本页]

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

作者: lvwenwen88    时间: 2012-1-4 21:26
和字面量"b"进行+运算的是一个对象而不是字面量




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2