Java -- String的intern方法

longerandlonger發表於2012-04-24

String a = ... ...

String b = a.intern();


簡單來說:

如果 a 是在常量池中的,那麼 a.intern() 返回a

如果 a 是 new 出來的,那麼 a.intern() 會試圖去常量池中找一個 equals 於 a 的物件。如果找到,就返回常量池裡的那個物件;如果沒找到,就會把 a 新增到常量池中,再返回這個新入池的物件。

	public static void main(String[] args) {
		String str0 = "fuck";
		String str1 = new String("fuck");
		
		System.out.println(str0 == str1);
		
		String str2 = str1.intern();
		System.out.println(str0 == str2);
	}


相關文章