码迷,mamicode.com
首页 > 其他好文 > 详细

字符串相加 内存分配

时间:2014-07-22 00:37:34      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:java   os   strong   问题   c   new   

 

问题:

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

字符串相加 内存分配

标签:java   os   strong   问题   c   new   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!