谁能告诉我以下行在Java上下文中的含义是什么:
final variable can still be manipulated unless it's immutable
据我所知,通过将任何变量声明为最终变量,您无法再次更改它,那么上面一行中的 immutable 一词是什么意思?
最佳答案
这意味着如果您的最终变量是引用类型(即不是像 int 这样的原始变量),那么它只是不能更改的引用。它不能引用不同的对象,但如果类允许,它所引用的对象的字段仍然可以更改。例如:
final StringBuffer s = new StringBuffer();
StringBuffer的内容还是可以任意改变的:
s.append("something");
但你不能说:
s = null;
或
s = anotherBuffer;
另一方面:
final String s = "";
字符串是不可变的 - 根本没有任何方法可以让您更改字符串(除非您使用反射 - 下 hell )。
关于java - Java中的最终变量操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1249917/