JDK中String类为什么设计成final类型的

来源:互联网 发布:工程结算软件 编辑:程序博客网 时间:2024/06/11 20:16

1)效率。只有String是不可变的,才能实现字符串常量池,不同的字符串变量都指向池中的同一个字符串,可以节省空间,提高效率。另外设计成final类型,JVM不用对相关方法在虚函数表中查询,而是直接定位到String类的相关方法上,提高了执行效率。由于字符串对象是不可变的,它们可以共享。

2)安全。String类不能被继承,就不会被修改,就避免了因为继承引起的安全隐患。

3)因为字符串是不可变的,所以在它创建的时候hashcode就被缓存了,不需要重新计算,故字符串很适合作为map中的键,字符串的处理速度要快过其它键对象。