kelekele111 2022-02-28 18:55 采纳率: 0%
浏览 25
已结题

关于#java#的问题:String yesB = new String("x1") + new String("y1")

    String yesB = new String("x1") + new String("y1");
    String yesC = yesB.intern();
    String yesA = "x1y1"; // 这里换了
    System.out.println(yesA == yesB); //为什么等于true阿??

img

  • 写回答

1条回答 默认 最新

  • 大鹏cool Java领域优质创作者 2022-02-28 19:38
    关注

    编译器可能将 String yesB = new String("x1") + new String("y1"); 优化为 String yesB = "x1y1"; 导致 yesA 和 yesB 指向了字符串常量池中的同一个字符串

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月7日
  • 创建了问题 2月28日