在Java中,我应该何时更喜欢String而不是StringBuilder?

Dan*_*own 9 java orm stringbuilder hibernate jpa

我知道StringBuilder应优先于String,因为String将保存在常量字符串池中,并为其分配新值不会覆盖以前的值.但是,StringBuilder是一个覆盖其先前值的对象.

  • 在什么情况下我应该使用String over StringBuilder反之亦然.
  • 另外如果我在Hibernate的支持类中有String类型的变量,我应该使用StringBuilder吗?怎么样?

    ...
    Result result = (Result) criteria.list().get(0);
    
    
    class Result{
       String name;
       String fname;
       ...
    }
    
    Run Code Online (Sandbox Code Playgroud)

Vla*_*cea 4

您应该使用String,因为String对象缓存在对象池中,并且在您不更改它们时可能会提供更好的性能。

AStringBuilder仅当您继续连接String标记时才有用,而在规范化良好的数据库表中不应出现这种情况。

JVM 会进行各种优化,即使您使用串联,JVM 也可能会将该例程重写为一个StringBuilder版本。


归档时间:

查看次数:

1202 次

最近记录:

10 年,4 月 前