zoukankan      html  css  js  c++  java
  • 为什么字符串用+号拼接对象,会得到字符串呢

    +号作为java中为数不多的重载运算符,提供了字符串拼接的功能。

    javap -c 反编译这个类可以看出来。编译器其实也是为我们手动new Stringbuilder来进行字符串拼接。

    那么问题来了。为什么有人告诉我,使用+号拼接字符串会产生一大堆无用的对象呢?他们是在开玩笑吗?编译器不是会为我们进行优化吗?

    其实不是这样的。

    对于一般的字符串拼接是没有问题的,只会产生一个Stringbuider对象。但是如果你拼接对象的行为在一个循环内,也就是说toString的形式是在一个循环内产生的,

    javap-c 可以看到。+号所产生的操作,会在循环内不产生N个Stringbuider对象。这是我们需要优化的地方。

    也就是我,当拼接字符串的操作发生在循环体内的话,请使用Stringbuider而不是+号。

  • 相关阅读:
    uoj 36 玛里苟斯
    readlink
    Endless Spin
    rm
    rmdir
    [学习笔记]min-max容斥
    cp
    [HAOI2015]按位或
    java实现第四届蓝桥杯公式求值
    java实现第四届蓝桥杯危险系数
  • 原文地址:https://www.cnblogs.com/munan56/p/12111990.html
Copyright © 2011-2022 走看看