zoukankan      html  css  js  c++  java
  • 字符串相加 内存分配

    问题:

    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字符串。

  • 相关阅读:
    SQL 执行进展优化
    初识SQL 执行顺序
    前端模块化开发的价值(转)
    js 闭包之一
    js模块开发(一)
    简单说说call 与apply
    js 爱恨情仇说 this
    说说 js String
    $Ajax简单理解
    SQL-如何使用 MongoDB和PyMongo。
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3857768.html
Copyright © 2011-2022 走看看