java - Java中的最终变量操作

标签 java variables final

谁能告诉我以下行在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/

相关文章:

java - 如何在java中将ms-Excel文件转换为Pdf?

java - 每个帐户的 Hibernate/JPA 增量列

java - 适配器 ListView 中的 onTouchListener 使 onItemClickListener 未运行

java - Azure REST API 使用 java 获取存储 Blob 大小详细信息

java - 测试 final 字段的初始化安全性

java - 最终局部变量可能尚未在匿名内部类中初始化

java - 带引用类型的空白最终

excel - 设置范围变量太长

JavaScript 变量定义 : Commas vs. 分号

javascript - 关于变量、函数及其背后的逻辑的问题?