java吧 关注:1,240,601贴子:12,712,711
  • 1回复贴,共1

小白!关于jdk1.8 字符串常量池以及 intern() 方法 的一些问题!

只看楼主收藏回复

有大佬知道,为什么在jdk1.8中,下面代码的结果为true、false、false、false吗?
String s1 = new StringBuilder().append("ja").append("va1").toString();
System.out.println(s1.intern() == s1);
String s2 = new StringBuilder().append("ja").append("va").toString();
System.out.println(s2.intern() == s2);
String s3 = new StringBuilder("java2").toString();
System.out.println(s3 == s3.intern());
String s4 = new StringBuilder().append("java3").toString();
System.out.println(s4 == s4.intern());


IP属地:广东1楼2018-08-06 09:56回复
    兄弟,1.8没有常量池 jdk1.8之后方法区之类的不是变成了元空间了么


    IP属地:河北2楼2018-08-06 15:26
    回复