qq_22447717
deadoggy
2017-08-07 14:52

Java Stirng.intern 和 StringBuilder 的疑惑

20
  • java
  • stringbuilder

在学习JVM内存的时候遇到了一个问题。我的环境是jdk1.8, 本来想通过intern验证Java8的
内存中字符常量是存在heap里面的,intern不会复制第一次遇到的字符串,而是把引用放入
字符串常量池。

但是在下面代码里:
String a = new StringBuilder("计算机").toString();

        System.out.println(a.intern()==a);

输出的是false

而在:
String a = new StringBuilder("计算机").append("aaa").toString();

    System.out.println(a.intern()==a);

中输出了true。

我的理解是都输出true。不知道为什么第一次会输出false?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

4条回答

为你推荐