Hier ist mein Code:Java: Wann werden Zeichenfolgen in den String const pool übernommen?
String s = new String("1"); // here I know that "1" is created in const pool
String s2 = new String("1") + new String("1");
Does "11" in dem String-Pool erstellt sofort in diesem Code? Falls nicht, sollte ich s2.intern()
aufrufen, um "11" in den String-Pool zu stellen?
-------------- udapte 22/9/2016 ---------------------
Hier ich habe mich Somethings verwirren: Beide neue Stirng ("1") und new String ("1") + new String ("1") berufen sich auf die gleiche native Methode System.arraycopy, die ich von JDK6 lernen .
Nun, warum wird "1" im String-Pool erstellt, aber "11" nicht? Macht irgendetwas Unterschiede in StringBuilder? Vielleicht Methode "append" oder ...?
Ich werde für Ihre Hilfe geschätzt werden.
Vielen Dank für Ihre Antwort. StringBuilder wird schließlich toString() aufrufen und "new String (Wert, 0, count)" .So Nach der Ausführung "new String (Wert, 0, Anzahl)", "11" noch in der Haufen? – GanGan
* Warum * sollte er "intern()" aufrufen, um "11" in den konstanten Pool zu setzen? – EJP
@GanGan Er hat das beantwortet. – EJP