1. 程式人生 > >JDK1.8版本java字串常量池裡存的是String物件還是引用?

JDK1.8版本java字串常量池裡存的是String物件還是引用?

採用new關鍵字新建一個字串物件時,JVM首先在字串池中查詢有沒有"xyz"這個字串物件,如果有,則不在池中再去建立"xyz"這個物件了,直接在堆中建立一個"xyz"字串物件,然後將堆中的這個"xyz"物件的地址返回賦給引用s3,這樣,s3就指向了堆中建立的這個"xyz"字串物件;如果沒有,則首先在字串池中建立一個"xyz"字串物件,然後再在堆中建立一個"xyz"字串物件,然後將堆中這個"xyz"字串物件的地址返回賦給s3引用,這樣,s3指向了堆中建立的這個"xyz"字串物件。s4則指向了堆中建立的另一個"xyz"字串物件。s3 、s4是兩個指向不同物件的引用,結果當然是false。