1.String类定义为final的原因
a.便于使用字符串常池
b.为了安全
String作为JDK的核心类,一些方法的内部使用了native方法,如果String的方法可以被重写,可能会破坏程序的安全,因此使用final修饰,锁定该类,提高内聚性。
另外还有线程安全的考虑
c.为了性能
只有String被定义为final的时候,JVM中才能够使用字符串常量池,不用考虑String的值会更改的问题,因此提高性能。
String作为JDK的核心类,一些方法的内部使用了native方法,如果String的方法可以被重写,可能会破坏程序的安全,因此使用final修饰,锁定该类,提高内聚性。
另外还有线程安全的考虑
只有String被定义为final的时候,JVM中才能够使用字符串常量池,不用考虑String的值会更改的问题,因此提高性能。