千锋教育-做有情怀、有良心、有品质的IT职业教育机构

Java学习之字符不可变有什么优势?

时间:2017-07-27 09:18:09  |  来源:千锋教育郑州校区  |  作者:

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

java字符串.jpg

  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不是固定不变的,将会引起各种安全隐患。

新开班

  • ▪ Python培训班 03.26 抢座
  • ▪ HTML5培训班 03.12 抢座
  • ▪ JavaEE培训班 03.26 抢座
  • ▪ Python培训班 02.26 爆满
  • ▪ JavaEE培训班 01.22 开班
  • ▪ HTML5培训班 12.25 开班
  • ▪ HTML5培训班 11.20 开班
  • ▪ UI交互设计培训 11.20 开班
  • ▪ JavaEE培训班 11.20 开班
  • ▪ HTML5培训班 10.09 爆满
  • 郑州地址:郑州市二七区航海中路60号海为科技园C区10层、12层
    咨询电话:0371-55911950 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 北京天丰利校区:北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 深圳科技园校区:深圳市南山区科苑南路高新技术产业园R3-B栋5层
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋2楼、3楼
    深圳西部硅谷校区:深圳市宝安区宝安大道5010号西部硅谷B座A605-619
    咨询电话:0755-86681178/9-801
    面授课程:iOS培训、Android培训、HTML5培训、UI培训、PHP培训、JavaEE培训、好程序员
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-65025129-602
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训、好程序员
  • 成都旅游校区:成都市一环路西二段17号四川旅游青羊校区内
    成都华立校区:成都一环路西二段17号华立大厦3楼
    咨询电话:028-83178771 028-61967740
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训、UI课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 大连地址:大连市甘井子区软件园路2号B8座二楼
    咨询电话:0411-39026086 400-654-7778
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 武汉地址:武汉市东新区光谷大道77号金融港B26栋9楼
    咨询电话:027-59905909 027-59905908 027-59905902
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 西安南二环校区:西安市二环南路西段60号永安大厦4层
    西安科技园校区:西安市雁塔区高新六路52号立人科技园C座西区4层
    咨询电话:029-85260160 029-85261030 029-85260960
    面授课程:iOS课程培训、Android课程培训、HTML5课程培训
  • 杭州地址:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:0571-86893632 010-82790226/7-801
    面授课程:iOS课程培训、Android课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A4层
    咨询电话:0532-80910752/3 010-82790226/7-801
    面授课程:iOS课程培训、Android课程培训、UI课程培训
  • 千锋教育微信号
    扫描加好友