final修饰类,无法被继承
final修饰方法,无法被重写
final修饰八种基本类型的变量,变量只能在定义时候 or 构造方法中被赋值一次 以后无法再次赋值
final修饰的对象,对象的指向不能修改,即如果当前对象1指向内存1,那么对象1无法再去指向其他内存,但是内存1中的内容是可以修改的
再说一个例子:
final String str = "123";
1.首先String类是final的,这表示String这个类无法被继承
2.这个表达式里的final表示,str对象的指向无法被改变 比如str="234" 这就会报错
但是由于 String的特殊性,str指向的内存的内容也是无法改变的,此时这个str相当安全
3.String的特殊性,String内部的每一个看起来会修改String值的方法,都是创建了一个全新的String对象,而原对象没有改变 比如toUpperCase()