Java intern()方法


intern()方法:

public String intern()

JDK源代碼如下圖:

返回字符串對象的規范化表示形式。

一個初始時為空的字符串池,它由類 String 私有地維護。

當調用 intern 方法時,如果池已經包含一個等於此 String 對象的字符串(該對象由 equals(Object) 方法確定),

則返回池中的字符串。否則,將此 String 對象添加到池中,並且返回此 String 對象的引用。

它遵循對於任何兩個字符串 s 和 t,當且僅當 s.equals(t) 為 true 時,s.intern() == t.intern() 才為 true。

所有字面值字符串和字符串賦值表達式都是內部的。

返回:

一個字符串,內容與此字符串相同,但它保證來自字符串池中。

盡管在輸出中調用intern方法並沒有什么效果,但是實際上后台這個方法會做一系列的動作和操作。

在調用”ab”.intern()方法的時候會返回”ab”,但是這個方法會首先檢查字符串池中是否有”ab”這個字符串,

如果存在則返回這個字符串的引用,否則就將這個字符串添加到字符串池中,然會返回這個字符串的引用。

例如:

public class Str2{
	
	public static void test(){
		String a="a";
		String b=a+"b";
		String c="ab";
		String d=new String (b);
		
		System.out.println(b==c);
		System.out.println(d==c);
		System.out.println(c==d.intern());
		System.out.println(b.intern()==d.intern());
	}
	public static void main(String []args){
		new Str2().test();
	}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM