信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动经济发展的产业之一。而Java是公认的大型软件项目的主角,从前景、发展方向等多方面来看,学习Java编程无疑是明智的。今天小编就来分享一下Java字符为什么不可变这一知识点。

Java的优势:
1、实用
Java能使开发者花小的代价完成工作,同时还能使得开发者在一段时间之后,还能继续完成别人的代码并且明白其中的意思。
2、可扩展
Java编程已经成为了一个坚实的平台,可以赶上甚至超过本地代码的水准。全球大型企业:Twitter,Spotify,Facebook,Scalesforce,eBay,当然还有Oracle。Hadoop,Cassandra和Spark,大数据工程的基础框架,无不使用Java或者Scala并且在JVM虚拟机上运行的。如果你想要良好的拓展性和性能,Java和JVM是好的选择。
Java字符为什么不可变?
不可变对象有很多优势:1)不可变对象可以提高String Pool的效率和安全性;2)不可变对象对于多线程是安全的;3)Java把String设成immutable大的原因应该是效率和安全。
1、字符串常量池的需要
字符串常量池(String pool, String intern pool, String保留池) 是Java堆内存中一个特殊的存储区域, 当创建一个String对象时,假如此字符串值已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。
2、允许String对象缓存HashCode
Java中String对象的哈希码被频繁地使用, 比如在hashMap 等容器中。字符串不变性了hash码的唯一性,因此可以放心地进行缓存.这也是一种性能优化手段,意味着不必每次都去计算新的哈希码。
3、安全性
String被许多的Java类(库)用来当做参数,例如:网络连接地址URL,文件路径path,还有反射机制所需要的String参数等, 假若String不是固定不变的,将会引起各种安全隐患。
