您的位置:首页 > 其它

String 为什么是final

2015-08-24 15:02 183 查看
String基本约定中最重要的一条是immutable(不可变的)。
不变对象的一个优点是 单个实例可以被多人共享 且不用花时间来处理同步和锁的问题。

1.才有可能实现常量池,节省heap内存(因为用的多 才有池)
2.如果字符串是可变的,那么会引起很严重的安全问题。譬如,数据库的用户名、密码都是以字符串的形式传入来获得数据库的连接
3.因为字符串是不可变的,所以是多线程安全的
4.类加载器要用到字符串,不可变性提供了安全性,以便正确的类被加载
5.因为字符串是不可变的,所以在它创建的时候hashcode就被缓存了,不需要重新计算。这就使得字符串很适合作为Map中的键,字符串的处理速度要快过其它的键对象。这就是HashMap中的键往往都使用字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: