免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1773 | 回复: 0

字符串扣留(理解String.intern()方法) [复制链接]

论坛徽章:
0
发表于 2009-09-07 17:44 |显示全部楼层

                java API解释:
public
String
intern()
    返回字符串对象的规范化表示形式。
一个初始时为空的字符串池,它由类 String 私有地维护。
当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由
equals(Object)
方法确定
),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。
它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为true。
字符串扣留的好处:
第一:它减少了程序中保存String对象的所需要的内存总量,如果程序中产生了许多重复的字符串,这种效果就明显了
第二:当希望比较两个字符串的相等性的时候允许使用"=="操作符来代替equals()方法。
举例说明:
String string1 = "Too many";
String string2 = "cooks";
String string3="Too many cooks";
string1 +=string2;
string1 = string1.intern();
intern()方法将针对当前所存在的所有String对象测试String1所引用的字符串。如果该字符串已经存在,当前的
对象将被丢弃,而string1将包含封装着同样字符串的已有对象的引用。因此,表达式string1==string3的求
值结果是true;而不调用intern()的求值结果是false.
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/5540/showart_2047445.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP