当前位置: 首页 > 面试题库 >

Java中toString()中的StringBuilder vs String串联

张晔
2023-03-14
问题内容

鉴于以下2种toString()实现方式,首选其中一种:

public String toString(){
    return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}

要么

public String toString(){
    StringBuilder sb = new StringBuilder(100);
    return sb.append("{a:").append(a)
          .append(", b:").append(b)
          .append(", c:").append(c)
          .append("}")
          .toString();
}
?

更重要的是,假设我们只有3个属性,这可能不会有什么不同,但是您将在什么时候从+concat 切换到 StringBuilder


问题答案:

版本1是更可取的,因为它更短,并且编译器实际上会将其转换为版本2-无任何性能差异。

更重要的是,鉴于我们只有3个属性,这可能没有什么区别,但是您什么时候从concat切换到builder

在您要串联的地方-通常是编译器无法自行替换时StringBuilder



 类似资料:
  • 问题内容: 这个问题来自一个作业。我必须在创建循环链接列表的类中重写toString()方法,而实际上我的toString()方法效果很好,它通过了我所有的测试。因此,我的项目是自动分级的,显然它不是100%赞成我的方法。所以我的问题是:有没有更好的方法来编写此toString()方法,这样会更有效? 如果我需要详细说明类结构,以便更有意义,请告诉我。 问题答案: 使用StringBuilder。

  • 问题内容: 如何打印通用Java类型的类型? 反射?有什么花招吗? 问题答案: 可能会完成您的期望。

  • 我需要为链表队列实现一个toString()递归方法。我知道我的toString方法在我上周做的一个链表实现中工作得很好,所以我在处理它的队列方面出了问题。 我的QueueList的toString方法: 以及我的构造函数,例如QueueList: 我试图用这个测试看看里面发生了什么: 与输出 我意识到这是因为我说的是前面的在方法的递归部分,但即使我将其更改为,我的输出是 这可能与我的排队和退队方

  • 本文向大家介绍java中的 toString()方法实例代码,包括了java中的 toString()方法实例代码的使用技巧和注意事项,需要的朋友参考一下 前言:       toString()方法 相信大家都用到过,一般用于以字符串的形式返回对象的相关数据。   最近项目中需要对一个ArrayList<ArrayList<Integer>> datas  形式的集合处理。   处理要求把集合数

  • 本文向大家介绍java中的tostring方法的具体用法,包括了java中的tostring方法的具体用法的使用技巧和注意事项,需要的朋友参考一下 我们知道调用对象的toString()方法会直接输出对象的属性信息,但是具体怎么实现的?以及如何更好地实现它呢?现在来学习下。 通过java文档我们能知道,toString()方法在Object类里定义的,其返回值类型为String类型,返回类名和它的

  • 问题内容: 该函数仅采用字符串切片: 但是,能够传递实现函数的任意对象会很好。 Go中是否有类似的东西,还是我必须用ToString方法来修饰现有类型并编写一个包装器? 问题答案: 将方法附加到任何命名类型,并享受任何自定义“ ToString”功能: 游乐场:http://play.golang.org/p/Azql7_pDAA 输出量