不同JDK版本之間的intern()方法的區別-JDK6 VS JDK6+

volatile丶發表於2020-11-29

String s = new Stirng(“a”);

s.intern();

JDK6:當呼叫intern()方法時,如果字串常量池先前已建立出該字串物件,則返回池中的該字串的引用。否則,將此字串物件新增到字串常量池中,並且返回該字串的引用。

JDK6+:當呼叫intern()方法時,如果字串常量池先前已建立出該字串物件,則返回池中的該字串的引用。否則,如果該字串物件已經存在於Java堆中,則將堆中此物件的引用新增到字串常量池中,並且返回該引用;如果堆中不存在,則在池中建立該字串並返回其引用。

相關文章