何時對字串文字使用intern 方法
使用文字語法(「String」)所建立的字串會自動駐留在字串池中透過JVM。因此,== 運算子對於字串文字的行為是一致的。
但是,對於使用 new String() 建立的字串來說,駐留並不是自動的。這就是 intern() 方法發揮作用的地方。
在使用 new String() 建立的 String 上使用 intern() 方法會將該 String 新增至池中,並傳回現有的物件實例(如果已存在相同的 String)存在於池中。
例如:
String s1 = "Rakesh"; String s2 = "Rakesh"; String s3 = "Rakesh".intern(); String s4 = new String("Rakesh"); String s5 = new String("Rakesh").intern(); if (s1 == s2) { System.out.println("s1 and s2 are same"); } if (s1 == s3) { System.out.println("s1 and s3 are same"); } if (s1 == s4) { System.out.println("s1 and s4 are same"); } if (s1 == s5) { System.out.println("s1 and s5 are same"); }
輸出將be:
s1 and s2 are same s1 and s3 are same s1 and s5 are same
除了s4 之外的所有情況,其中String 是使用new 明確建立而不是interned, JVM 的字串常數池傳回相同的不可變實例。
請參閱 JavaTechniques 「字串相等和實習」以了解更多詳細資訊。
以上是什麼時候應該對 Java 字串使用'intern()”方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!