分类目录

登录

统计信息

  • 日志总数:229篇
  • 评论总数:360条
  • 分类总数:3个
  • 标签总数:501个
  • 友情链接:11个
  • 网站运行:2932天

西安市公共自行车 微信小程序 入口扫描,扫我进入~

个人信息

·网名:青年白
·生日:1991年9月17日
·博客: http://www.baikeyang.com
·邮箱:baikeyang@vip.qq.com
·籍贯: 陝西省汉中市
·工作: 杭州鸿泉数字设备有限公司
·职位:Java软件开发工程师
·地址:西安市高新区丈八一路绿地SOHO
·   同盟A座606室
·时间:2015.07─至今
·工作: 西安易一电子科技有限公司
·职位:Java中级软件开发工程师
·地址:西安市高新区科技二路软件园
·   西岳阁403室
·时间:2014.05─2015.06
·工作:陕西齐力集团
·职位:初级软件开发工程师
·地址:西安市建工路19号新城科技产业园
·   华企大厦7层
·时间:2013.05─2014.04
现在位置:    首页 > 技术乱弹 > 正文
[温故]Java 字符串对象池的作用
技术乱弹 评论(1)

从Java5.0开始,Java虚拟机在启动的时候回实例化9个对象池。这9个对象池分别用来存储8中基本类型的包装类对象和String对象,主要是为了效率问题。

大家应该知道,创建String对象有俩种办法,代码如下:

这俩种创建String对象的方法有什么区别吗?区别就在于第一种方法在对象池中取对象,第二种方法直接生成新的对象。

当在程序中直接用双引号引起来一个字符串时,Java虚拟机(JVM)就到String的对象池中就去检查是否有一个值相同的对象。如果有,就取现成的对象;如果没有则在对象池中创建,并返回其引用。因此,可以发现下面的代码输出true:

这说明str1和str2指向同一个对象,因为它们都是在对象池中取到的,而下面的代码输出为false

因为在任何情况下,只要new一个String对象都是创建了新的对象。其他的基本类型包装类的对象池与此类似,工作原理是一样的。对象池的存在是为了避免频繁的创建和销毁对象而影响系统性能,那么自定义的类是否也可以使用对象池呢?当然可以,我这里就不写代码了~

 

 

原文链接:https://blog.csdn.net/qq_33642117/article/details/52214236

 

本文版权归青年博客所有,转载引用请完整注明以下信息:
本文作者:BaiKeyang
本文地址:[温故]Java 字符串对象池的作用 | 青年博客

[温故]Java 字符串对象池的作用:目前有1 条留言

  1. weihua : 2018年05月11日10:36 回复

    一个博客能让人流连忘返,讲真,靠的是实力!

发表评论

留言无头像?