String
intern
public String intern()
-
返回字符串对象的规范化表示形式。
一个初始时为空的字符串池,它由类
String
私有地维护。当调用 intern 方法时,如果池已经包含一个等于此
String
对象的字符串(该对象由equals(Object)
方法确定),则返回池中的字符串。否则,将此String
对象添加到池中,并且返回此String
对象的引用。它遵循对于任何两个字符串
s
和t
,当且仅当s.equals(t)
为true
时,s.intern() == t.intern()
才为true
。所有字面值字符串和字符串赋值常量表达式都是内部的。字符串字面值在《Java Language Specification》的 §3.10.5 中已定义。
-
-
-
返回:
- 一个字符串,内容与此字符串相同,但它保证来自字符串池中。
比较2个对象内容是都相同很多人第一想到的就是equals(Object anObject) ,而这个方法确实能够解决问题的关键。但String.intern
这个方法却被很多人所忽视。
例如:
String abc = "intern体验";
System.out.println("intern体验".intern() == abc.intern()); //true
System.out.println("intern体验".equals(abc)); //true
System.out.println("intern体验" == abc); //false
看的出 intern 与 equals 方法的使用基本一致,但区别在于 intern 的效率要高于equals