?* 簡單的總結下:intern()方法
?* 這個方法是扣留的意思。呵呵。
?* 把當前字符串扣留到池中,然后用同樣的字符串時就是從內存池中取,而不會產生新對象,提供效率了撒。
?* 都知道我們在JVM中內置了一個字符串池。
?* 所有的字面值字符串和字符串賦值常量表達式都用intern()方法進行操作。
?* 但是有一點不同,就是通過new生成的字符串對象,這個對象生成了兩個字符串對象,
?* 一個是字面字符串(這個可以從池中取,或者生成新字符串對象,并扣留到池中),然后在將這個字符串對象
?* 的值傳給new出來的字符串對象的構造器,生成一個新字符串對象(這個字符串是沒有扣留到池中的),記住new關鍵字總是生成了對象。
?* 而我們給這個new出的字符串調用intern()方法,就會把這個字符串對象扣留到池中,而且如果池中有相同的字面值的字符串,
?* 就會返回池中的字符串,如果我們將該字符串引用賦給原先字符串的引用變量,那么我們就會省去一個對象,原先的字符串對象就會被某一個時刻回收,
?* 如果池中沒有相同值的字符串就返回該對象自身。