String类为什么是final的。

在回答这个问题之前,我觉得有必要搞清楚final到底是个什么?

一、理解final
1、final修饰类
被final修饰的类不能被继承,即它不能拥有自己的子类,否在会在编译期间报错。

2、final修饰方法
被final修饰的方法不能被重写,但是:
重写的前提是子类可以从父类中继承此方法,所以当父类中被final修饰的方法的访问权限为private时,
子类中就可以重写该方法了。

3、final修饰变量
final修饰的变量,无论是类属性、对象属性、形参还是局部变量,都需要进行初始化操作。

二、解答问题
主要是为了”安全性“和”效率“的缘故,因为:
1、由于String类不能被继承,所以就不会被修改,这就避免了因为继承引起的安全隐患;

2、String类在程序中出现的频率比较高,如果为了避免安全隐患,在它每次出现时都用final来修饰,这无疑会降低程序的执行效率,所以干脆直接将其设为final一提高效率;

猜你喜欢

转载自my.oschina.net/90888/blog/1624500
今日推荐