标签:tabs 优化 nal 提高 string类 声明 运行 ble 引用类型
final修饰的变量(成员变量或局部变量),即常量,只能赋值一次,不能再次修改。
final成员变量要么在声明时赋值,要么在构造函数里赋值。
如果变量为引用类型,变量的引用不能修改,但是引用指向的内容是可以被修改的。
final修饰的方法不能被子类重写。
final修饰的类不能被继承。
最典型的例子:String类。因为String是immutable的,所以不能允许其他类继承String,否则其子类会轻易的将其改为mutable。详细参考:https://www.zhihu.com/question/31345592
String a = "hello2"; final String b = "hello"; String c = "hello"; String d = b+2; String e = c+2; //编译期b是常量,d会直接被编译器优化为hello2 System.out.println((a == d));//true //由于b不是常量,编译期不会被优化,在运行时创建新对象 System.out.println((a == e));//false
标签:tabs 优化 nal 提高 string类 声明 运行 ble 引用类型
原文地址:http://www.cnblogs.com/bongQ417/p/6036263.html