final
final关键词可以用来修饰变量,方法,类
1.修饰变量
-
修饰变量时,必修在对该变量进行初始化,且后续不能对这个变量进行修改,实质就是一个常量
-
如果被修饰的变量是引用的话(变量是对象)时,意味着该变量不能重新绑定一个另一个对象的引用,但可以改变引用指向对象的内部空间的值。例如,可以在final数组中或者final集合中添加或者删除元素。
2.修饰方法
- 修饰方法时,表示该方法不能被所在类的子类重写或者覆写
3.修饰类
- 修饰类时,表明该类不能被继承,求所有的方法被隐式的指定为final,但是成员变量不会。(Float,Integer)
4.为什么String是final的
- 为了实现字符串池,相同的字符串指向字符串池的一个地址,节省空间。
- 线程安全
- 实现以String为键的hashcode的不可变性 举例以stringbuilder为hash键,可以通过apend函数得到相同的键。原来的键[“app”,“append”]–>[“append”,“append”].