Java中的最终变量操作

任何人都可以告诉我在Java上下文中以下行的含义是什么:

除非变量是不可变的,否则仍然可以对其进行操作

据我所知,通过将任何变量声明为final,就无法再次对其进行更改,那么上一行中 一词的含义是什么?

回答:

这意味着,如果您的最终变量是引用类型(即不是像int这样的基元),则只有引用是不能更改的。不能使它引用不同的对象,但是如果类允许,它所引用的对象的字段仍可以更改。例如:

final StringBuffer s = new StringBuffer();

StringBuffer的内容仍然可以任意更改:

s.append("something");

但是你不能说:

s = null;

要么

s = anotherBuffer;

另一方面:

final String s = "";

字符串是不可变的-根本没有任何方法可以使您更改字符串(除非您使用Reflection-并下地狱)。

以上是 Java中的最终变量操作 的全部内容, 来源链接: utcz.com/qa/407497.html

回到顶部