考虑到以下2toString()种实现方式,首选哪种:

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();
}

?

M或e imp或tantly, given we have only 3 properties it might not make a difference, but at what point would you switch from + concat to StringBuilder?

推荐答案

版本1更可取,因为它更短且the compiler will in fact turn it into version 2-没有任何性能差异.

更重要的是,我们只有3个 属性,它可能不会使 不同之处,但是你在什么时候 从Concat切换到Builder?

当你在一个循环中连接时——通常是编译器不能自己替换StringBuilder的时候.

Java相关问答推荐

如何在Java中设置字符串与中文字符对齐?

验证使用GCP生成的非对称密钥时签名不起作用

Spring Boot找不到Mapper bean

Java SSLocket查明客户端是否发送了证书

虚拟线程似乎在外部服务调用时阻止运营商线程

我想了解Java中的模块化.编译我的应用程序时,我有一个ResolutionException

JVM会优化这个数学运算吗?

关于泛型的覆盖规则

所有 case 一起输入时输出错误,而单独放置时输出正确

对于亚洲/香港,使用ResolverStyle.STRICT的LocalDate.parse返回意外结果

如何在Java记录中设置BigDecimal类型属性的精度?

GetChildren().emoveAll()不会删除 node

是否为计划任务补偿系统睡眠?

JFree Chart从图表中删除边框

在不使用instanceof或强制转换的情况下从父类变量调用子类方法

为什么没有加载java.se模块?

Java CDI:@Singleton@Startup@Inject无法实现接口

使用Java线程进行并行编程

使用StringBuilder和append方法创建字符串时Java字符串内部方法的问题

message.acknowledge()没有';在使用Spring Boot在ActiveMQ中读取消息后,t将消息出列