原理1:當使用任何方式來建立一個字符串對象s=X時,Java運行時(運行中JVM)會拿着這個X在String池中找是否存在內容相同的字符串對象,若是不存在,則在池中建立一個字符串s,不然,不在池中添加。對象
原理2:Java中,只要使用new關鍵字來建立對象,則必定會(在堆區或棧區)建立一個新的對象。字符串
原理3:使用直接指定或者使用純字符串串聯來建立String對象,則僅僅會檢查維護String池中的字符串,池中沒有就在池中建立一個,有則罷了!但毫不會在堆棧區再去建立該String對象。變量
原理4:使用包含變量的表達式來建立String對象,則不只會檢查維護String池,並且還會在堆棧區建立一個String對象。原理