修饰类
final 修饰类时表明这个类不能被继承, 类中的成员方法默认是 final 类型.
修饰方法
被 final 修饰的方法不能被继承.
修饰变量
修饰基本类型变量
该基本类型变量不能再次被赋值.
修饰引用类型变量
该引用类型变量不能再指向其它对象, 即所指向的地址值不能发生变化. 但, 该对象所包含的内容可以发生改变.
class Person{
public String name;
}
final Person person = new Person();
// 不能将 person 在指向新的地址:Error: 无法为最终变量 person 分配值
//person = new Person();
// 可以更改 person 的属性内容
person.name = “helloworld”;
final 与 String
被 final 修饰的字符串在编译器会被当做字符串常量使用.
String a = “helloworld”;
final String b = “hello”;
String c = b +”world”;
boolean flag = a==c;// 为 true,fianl 所修饰的字符串 b 在编译器就确定了值
public String getHello(){
return “hello”;
}
String d = getHello()+”world”;
boolean flag1 = a==d;//false, 因为方法在运行期才能确定返回值