一般我們變成很少使用到?intern這個方法,今天我就來解釋一下這個方法是干什么的,做什么用的
首先請大家看一個例子:
public static void main(String[] args) throws Exception { String a = "b" ; String b = "b" ; System.out.print( a == b); String c = "d" ; String d = new String( "d" ).intern() ; System.out.println( c == d); }
大家能看出來這個例子打印在控制臺的消息嗎?在這里控制臺輸出的結果都是true ?true,原因在于 intern 這個方法返回的是?返回字符串對象的規范化表示形式,當調用 intern 方法時,如果池已經包含一個等于此 String 對象的字符串(該對象由?equals(Object)?方法確定),則返回池中的字符串。否則,將此 String 對象添加到池中,并且返回此 String 對象的引用。這時候c和d就是相等的。
下面在看一個例子:
String s1 = "ab123" ; String s2 = new String( "ab123" ) ; System.out.println( s1 == s2 ); String s3 = s2.intern() ; System.out.println( s1 == s3 ) ;
看看這里輸出的是什么,我想大家應該明白這個方法的作用是什么了吧!!