Bei dem Beispiel zu Java steht: So steht "foobar" intern für new String(char[] stringinhalt) Als erstes irritiert den Leser, was denn "foobar" sein soll. Im Beispiel steht "FRANK". Ich denke, es wäre naheliegender, auch das im Beispiel verwendete Literal und auch genau die Anführungszeichen zu verwenden, die man im source-code der Programmiersprache verwenden muss. Hinzu kommt noch der inhaltliche Fehler: nirgendwo ist spezifiziert, wie die VM String-Literale erzeugt. Man kann also nicht behaupten, dass sie über einen bestimmten Konstruktor erzeugt werden. Außerdem besitzen sie spezielle Eigenschaften. "FRANK" == "FRANK" liefert true. char[] c={ 'F', 'R', 'A', 'N', 'K' }; new String(c) == new String(c) liefert dagegen false. Demzufolge steht "FRANK" nicht für new String(new char[] { 'F', 'R', 'A', 'N', 'K' }) , auch nicht intern.