我可以在不使用构造函数的情况下在Java中设置String的值吗?

Cra*_*enz 7 java string

How-Do /我可以在Java中设置String对象的值(不创建新的String对象)吗?

Mar*_*ers 13

没有"设置"方法String.字符串在Java中是不可变的.要更改String变量的值,需要为变量分配不同的字符串.您无法更改现有字符串.

(不创建新的String对象)

分配不会创建新对象 - 它会复制引用.请注意,即使你写这样的东西:

s = "hello";
Run Code Online (Sandbox Code Playgroud)

不会创建一个新的字符串对象每次运行时间.字符串对象将来自字符串池.


Jos*_*iaz 5

实际上在 Java 中没有办法做到这一点,默认情况下 String 对象是不可变的。

事实上,这就是为什么使用"+"连接运算符 like"str1" + "str2"效率极低的原因之一,因为它所做的是复制每个字符串以生成第三个字符串。

根据您的需要,您应该考虑使用 StringBuilder