修饰类
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,因为方法在运行期才能确定返回值