关于#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

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