??????????????????????????????????String a = “hello” + “world”;???????new StringBuilder().append(“hello”).append(“world”)????????????????????????????????????????????????????Java?е?????????????й???????????????

??????????壬???????????б??????Java?У??????????????????????????????????????????????????????????Java?У???C#???????????????д??????????????????Java?????????????

public class test {
  public static void main(String[] args) {
      String a = "abc";
      String b = "abc";
      System.out.println(a == b);  // true
      String c = new String("abc");
      System.out.println(a == c);  // false
      System.out.println(a.equals()); // true
  }
}

??????????δ??????????String a = “abc”????????????????д????????abc??String??????????????????????String b = “abc”?????java?????????????????????????abc??????????????????b?????????????????????′??????????????????????С?????????????????????е??????仰????????true?????????==??java?б??????????????????????????????????????a??b?????????????????????true?????????????????????е?String c = new String(“abc”)??仰?????java?????°????? ???abc??????????????????????У??????????????????????????????????String?????????????У???????????java?ж??????????У??????????????????У?????????仰????????????2??????(???abc?????????????????????д????????????)???????new String()????????????????????????????????е??????????????????????????????д?????????????????????????е??java???????????????intern()????????c.intern()?????????c??????????????У????????????????????á?????????′????????????

public class test {
  public static void main(String[] args) {
      String a = "abc";
      String b = new String("abc");
      System.out.println(a == b.intern());  // true
      System.out.println(a == b);  // false
  }
}

?????????true????????????й????????????μ???????b.intern();??仰???????????????????????????????????????д????????abc??String?????????????????????С??????????????????????abc???????????????????b.intern?????????????е???????????????true????????????У?System.out.println(a == b);????false??????????b.intern();??仰?????????????????????????е????????????b??????е??????????????a == b????false??

???????????????????????????java?е??????????????????????????????????????????StringBuilder????????????”+”????????????????????????????????2?StringBuilder???????????????”+”???????????????????10?????????????????????”+”?????tricky?????????????????????

??????????????+???????????ζ??????μ????????????????????У???????????????(??????)???????????????????????+??????????????????Ч?????????Java????StringBuffer??StringBuilder???????????????????????????????????????????????????????д????????????????????????????????????????????????GC?????????????????????????????

??????????????????????????????γ???

public class test {
  public static void main(String[] args) {
      String a = "a";
      String b = "b";
      String c = "ab";
      String d = "a" + "b";
      String e = a + "b";
      String f = a + b;
      System.out.println(c == d);  // true
      System.out.println(c == e);  // false
      System.out.println(c == f);  // false
      System.out.println(d == e);  // false
      System.out.println(d == f);  // false
      System.out.println(e == f);  // false
  }
}

????c == d???true?????c??d????????????????????????????????????????漰?????????????????????????????????????????????false??