开发 Java 系统程序员要注意的基本知识
• final 关键字到底修饰了什么 ?
•
final 使得被修饰的变量 " 不变 " ,但是由于对象型变量的本质
“
”
“
”
是 引用 ,使得 不变 也有了两种含义 : 引用本身的不变,和引用
指向的对象不变。
•
引用本身的不变 :
•
final StringBuffer a=new StringBuffer("immutable");
•
final StringBuffer b=new StringBuffer("not immutable");
•
a=b;// 编译期错误
•
引用指向的对象不变 :
•
final StringBuffer a=new StringBuffer("immutable");
•
a.append(" broken!"); // 编译通过