谁能告诉我下面这行在 Java 上下文中的含义是什么:
最终变量仍然可以是
被操纵,除非它是不可变的
据我所知,通过将任何变量声明为最终变量,您将无法再次更改它,那么它们的含义是什么不可变的在上面一行?
这意味着如果您的最终变量是引用类型(即不是像 int 这样的基元),那么它只是无法更改的引用。它不能引用不同的对象,但如果类允许,它所引用的对象的字段仍然可以更改。例如:
final StringBuffer s = new StringBuffer();
StringBuffer的内容仍然可以任意改变:
s.append("something");
但你不能说:
s = null;
or
s = anotherBuffer;
另一方面:
final String s = "";
字符串是不可变的 - 根本没有任何方法可以让您更改字符串(除非您使用反射 - 见鬼去吧)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)