首页 > 其他 > 详细

字符串相加 内存分配

时间:2014-07-21 11:27:36      阅读:372      评论:0      收藏:0      [点我收藏+]

 

问题:

String s = "a" + "b" + "c";
      这里,我们先不考虑"a","b","c"是放置在池中这个问题。
      这个"+"操作符,java到底是怎么对待的?
  一种说法是"a"是一个字符串对象,+"b"之后,又生成一个字符串对象,大概是"ab",+"c"之后,再生成一个字符串对象,大概是"abc",
然后,把"abc"字符串对象的引用返回给s。这样,在这个过程中,共有6个字符串对象产生,这样效率低,所以应该用StringBuffer实现,
如:
     StringBuffer sb = new StringBuffer(100);
     sb = sb.append("a").append("b").append("c");
  再有一个说法,是java对“+”操作符进行重载,最终以StringBuffer实现以上字符串相加动作。

 

      实际上

  在java内部的确是对+进行了重载,在处理String的过程中要创建一个StringBuffer对象,用StringBuffer对象的append方法对字符串进行连接,最后调用toString方法返回String字符串。

字符串相加 内存分配,布布扣,bubuko.com

字符串相加 内存分配

原文:http://www.cnblogs.com/tech-bird/p/3857768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!