加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在StringBuffer append中为单字符值使用字符而不是Strin

发布时间:2020-12-14 05:06:33 所属栏目:Java 来源:网络整理
导读:我正在通过PMD规则AppendCharacterWithChar.它说避免在StringBuffer.append中将字符连接成字符串. StringBuffer sb = new StringBuffer(); // Avoid this sb.append("a"); // use instead something like this StringBuffer sb = new StringBuffer(); sb.app
我正在通过PMD规则AppendCharacterWithChar.它说避免在StringBuffer.append中将字符连接成字符串.
StringBuffer sb = new StringBuffer();
  // Avoid this
  sb.append("a");

  // use instead something like this
  StringBuffer sb = new StringBuffer();
  sb.append('a');

我真的需要这个PMD规则吗?以下两段代码之间的性能差异有多大?

String text = new StringBuffer().append("some string").append('c').toString();

String text = new StringBuffer().append("some string").append("c").toString();

解决方法

将字符附加为char将始终比将其作为String附加更快.

但性能差异是否重要?如果你只是做一次,它不会.如果它在一个周期内重复其身体一百万次,那么是的,这可能很重要.

如果你在编译时已经有了这个字符,只需要把它作为一个字符.如果它存储在具有String类型的变量中,则不要打扰访问它.用String.charAt(0)或其他一些方法,只需要附加String.

一边注意:

喜欢StringBuilder类到StringBuffer. StringBuilder更快,因为它的方法不同步(在大多数情况下你不需要).

一边注2#

这不会编译:

String text = new StringBuffer().append("some string").append('c');

append()返回StringBuffer进行链接.你需要调用toString():

String text = new StringBuffer().append("some string").append('c').toString();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读