String 为什么是final
2015-08-24 15:02
183 查看
String基本约定中最重要的一条是immutable(不可变的)。
不变对象的一个优点是 单个实例可以被多人共享 且不用花时间来处理同步和锁的问题。
1.才有可能实现常量池,节省heap内存(因为用的多 才有池)
2.如果字符串是可变的,那么会引起很严重的安全问题。譬如,数据库的用户名、密码都是以字符串的形式传入来获得数据库的连接
3.因为字符串是不可变的,所以是多线程安全的
4.类加载器要用到字符串,不可变性提供了安全性,以便正确的类被加载
5.因为字符串是不可变的,所以在它创建的时候hashcode就被缓存了,不需要重新计算。这就使得字符串很适合作为Map中的键,字符串的处理速度要快过其它的键对象。这就是HashMap中的键往往都使用字符串。
不变对象的一个优点是 单个实例可以被多人共享 且不用花时间来处理同步和锁的问题。
1.才有可能实现常量池,节省heap内存(因为用的多 才有池)
2.如果字符串是可变的,那么会引起很严重的安全问题。譬如,数据库的用户名、密码都是以字符串的形式传入来获得数据库的连接
3.因为字符串是不可变的,所以是多线程安全的
4.类加载器要用到字符串,不可变性提供了安全性,以便正确的类被加载
5.因为字符串是不可变的,所以在它创建的时候hashcode就被缓存了,不需要重新计算。这就使得字符串很适合作为Map中的键,字符串的处理速度要快过其它的键对象。这就是HashMap中的键往往都使用字符串。
相关文章推荐
- PAT (Basic Level) Practise:1032. 挖掘机技术哪家强
- join()之让线程按顺序执行
- 离屏Canvas——制作水印图片
- mysql在linux及windows上安装及远程连接
- NBUT 1223 Friends number
- 如何在mac上安装virtualBox(虚拟机)
- Android 网络--我是怎么做的: Volley+OkHttp+Https
- 利用模板导出文件(二)之jacob利用word模板导出word文件(Java2word)
- Android倒计时的实现代码
- java代码实现如jsp页面的form请求方式二HttpClient
- POJ1700 Crossing River
- selector-item属性
- 定位高cpu使用率
- 家装应该怎么刷涂料
- 又见GCD(http://acm.hdu.edu.cn/showproblem.php?pid=2504)
- 堆排序1.0
- Redis cluster基础介绍
- Chrome插件-Postman
- mac下 硬破解zend studio 12.5.1
- PHP读取大文件小技巧