您的位置:首页 > 编程语言 > Java开发

java-String类intern()方法

2015-06-17 14:56 429 查看

java-String类intern()方法

本文参考hfmbook的专栏

这个方法在jdk中是这么说的:

当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。

它遵循对于任何两个字符串 s 和 t,当且仅当 s.equals(t) 为 true 时,s.intern() == t.intern() 才为 true。

所以有了以下代码:

String a =  "b" ;
String b =  "b" ;
System.out.print( a == b);   //true

String c = "d" ;
String d = new String( "d" ).intern() ;
System.out.println( c == d);  //true


原因在于 intern 这个方法返回的是 返回字符串对象的规范化表示形式,当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。这时候c和d就是相等的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  intern string java