Il n'y a pas de "abc" dans le pool de constantes de chaîne. Pourquoi les résultats sont-ils inférieurs à faux et vrais ? - Questions et réponses sur le site Web chinois PHP - Il n'y a pas de "abc" dans le pool de constantes de chaîne. Pourquoi les résultats sont-ils inférieurs à faux et vrais. ? - Questions et réponses sur le site Web chinois PHP
Il n'y a pas de "abc" dans le pool de constantes de chaîne. Pourquoi les résultats sont-ils inférieurs à faux et vrais ? - Questions et réponses sur le site Web chinois PHP - Il n'y a pas de "abc" dans le pool de constantes de chaîne. Pourquoi les résultats sont-ils inférieurs à faux et vrais. ? - Questions et réponses sur le site Web chinois PHP
Venez regarder et apprendre.
String s1 = new String("abc"); 生成了常量池中的“adc” 和堆空间中的字符串对象。
String s2 = s1.intern(); 这一行的作用是s1对象去常量池中寻找后发现"abc"已经存在于常量池中了。 然后生成一个s2的引用指向常量池中的“abc”对象。
结果就是 s1 和 s2 的引用地址明显不同。因此返回了false。
String s3 = "123"; 这一行代码会直接去常量池中创建
String s4 = s3.intern(); 发现"123"已经在常量池存在 直接引用指向常量池“123”对象
结果就是s3 和s4 的引用地址相同 返回true
不过jdk1.6 和1.7 有点不同 建议去看看api 或者百度下