84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
认证高级PHP讲师
sb は本質的に StringBuffer オブジェクトです。sb+"" は sb.toString() を呼び出して "" と結合します。また、StringBuffer はスレッド セーフです。その理由は、Jdk の String クラスが Final 型であるためですが、最終的に変更されたバージョンが String str = s + ""; の形式で存在できるのはなぜですか? jvm では、 + が実行されるたびに一時 String オブジェクトが作成され、実際には String str = new String(a) + new String(b) になります。ただし、結合する文字列が多すぎると、多くの String オブジェクトが作成されるため、このような頻繁な操作は文字列結合を直接使用せず、StringBuilder または StringBuffer を使用します。
sb は本質的に StringBuffer オブジェクトです。sb+"" は sb.toString() を呼び出して "" と結合します。また、StringBuffer はスレッド セーフです。その理由は、Jdk の String クラスが Final 型であるためですが、最終的に変更されたバージョンが String str = s + ""; の形式で存在できるのはなぜですか? jvm では、 + が実行されるたびに一時 String オブジェクトが作成され、実際には String str = new String(a) + new String(b) になります。ただし、結合する文字列が多すぎると、多くの String オブジェクトが作成されるため、このような頻繁な操作は文字列結合を直接使用せず、StringBuilder または StringBuffer を使用します。