String 为什么是final

来源:互联网 发布:音乐截取软件 for mac 编辑:程序博客网 时间:2024/06/10 09:28
String基本约定中最重要的一条是immutable(不可变的)。
不变对象的一个优点是 单个实例可以被多人共享 且不用花时间来处理同步和锁的问题。

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