如果您构建一个对象,请说" Intruder"并将其定义为final,您仍然可以更改此类对象字段,这些字段在类的定义中不是最终的(即Intruder.power = 50;)。 在这种情况下,限制将是关于入侵者的对象引用而不是内在值。
我的问题是:以Strings为例? 如果你创建一个String对象,比如" String s = new String(" str"); 有没有办法改变字符串" str"值? 如果没有,为什么?是不是可以更改String对象的文字值而不改变它的引用?
谢谢!
答案 0 :(得分:3)
没有,因为字符串是不可变的。在字符串上使用方法时,它会创建一个新的字符串对象。
答案 1 :(得分:1)
正如其他答案所述,字符串是不可变的。如果您希望能够改变字符串的内容,那么StringBuilder或StringBuffer就是您正在寻找的内容。
答案 2 :(得分:0)
这是不可能的。字符串是不可变的,这意味着它们不能被更改。如果我这样做:
String name = "John"
name.substring(2);
什么都不会发生。将返回一个永远不会分配给任何内容的新String。