注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

创新改变世界

you changed the world

 
 
 

日志

 
 

java String池  

2014-05-19 14:21:37|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
缓冲池是java为了节省内存空间,会在内存中创建一个专门为String设计的缓冲池,用来保存已经存在的字符串,如果2个字符串是一样的,则使用池中的字符串,不再创建新的对象,但是在池中所有字符串都是以char数组形势存在的。
不可变性是java中的String一但创建,是永远不可改变的,每次改变都是创建一个新的String对象。
回到题目,为什么可能一个,可能2个呢?
如果在new String的时候String缓冲池中已经存在了fdfd这个char数组,那么会直接创建一个String对象引用这个数组,否则创建一个新的char数组放在池中,再创建一个String对象引用这个数组。
注意:java中,数组也是以对象的形式存在的。

楼上的解释是jdk1.4时代了,现在已经jdk1.6了,String+号拼接时候,编译器已经默认使用StringBuilder构造,单线程的String拼接操作直接用+号比StringBuffer性能要好。
  评论这张
 
阅读(40)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017