首先檢視官方api那個的解釋:
intern
public stringintern()
返回字串物件的規範化表示形式。
乙個初始時為空的字串池,它由類 string 私有地維護。
當呼叫 intern 方法時,如果池已經包含乙個等於此 string 物件的字串(該物件由 equals(object) 方法確定),則返回池中的字串。否則,將此 string 物件新增到池中,並且返回此 string 物件的引用。
它遵循對於任何兩個字串 s 和 t,當且僅當 s.equals(t) 為 true 時,s.intern() == t.intern() 才為 true。
所有字面值字串和字串賦值常量表示式都是內部的。
返回:
乙個字串,內容與此字串相同,但它保證來自字串池中。
儘管在輸出中呼叫intern方法並沒有什麼效果,但是實際上後台這個方法會做一系列的動作和操作。在呼叫」ab」.intern()方法的時候會返回」ab」,但是這個方法會首先檢查字串池中是否有」ab」這個字串,如果存在則返回這個字串的引用,否則就將這個字串新增到字串池中,然會返回這個字串的引用。
可以看下面乙個範例:
String中intern的方法
intern public string intern 返回字串物件的規範化表示形式。乙個初始時為空的字串池,它由類 string 私有地維護。當呼叫 intern 方法時,如果池已經包含乙個等於此 string 物件的字串 該物件由 equals object 方法確定 則返回池中的字串。否則,將...
String用於提公升效能的intern 方法
jdk每次公升級都會做很多優化,我們使用最多的string常量類也在不斷被優化。這次和大家分享的是jdk1.8中對string的優化之一,intern 方法的使用。對應的方法及注釋如下 一句話概括,就是通過常量池復用來節省記憶體空間 減少開銷以提公升效能。tips 這裡簡單介紹一下常量池,方便下文理...
JVM中String的處理,intern 的實質
1.jvm維護一張 color darkred b 常量池的 b color hash表,這個hash表是對應常量池的,屬於棧記憶體。string str2 new string abc string str1 abc system.out.println str2 str2.intern fals...