我知道字符串在本质上是不可改变的.但我有一个问题.
String a = new String("abc");
Run Code Online (Sandbox Code Playgroud)
如果我们创建一个像上面的字符串而不是文字,那么它不是不可变的,因为它是作为一个新对象创建的吗?请澄清.谢谢.
不,它没有.无论如何创建,java String 始终是不可变的.
实际上使用new
创建字符串是多余的,99%的情况应该避免(除非你做一些微板凳标记)
不可变意味着一旦创建实例就无法修改它.当你查看String的所有方法时,它们都没有实际修改传递给它的原始String.它们要么返回相同的String,要么创建一个新的String.