[Haftungsausschluss Dies ist eine absichtlich meinungsgebundene Antwort, da ich der Meinung bin, dass eine Antwort "Mach das nicht zu Hause, Kinder" gerechtfertigt ist.]
Die Sünde ist die Linie field.setAccessible(true);
die besagt, dass die öffentliche API verletzt werden soll, indem der Zugang zu einem privaten Feld ermöglicht wird. Das ist eine riesige Sicherheitslücke, die durch die Konfiguration eines Sicherheitsmanagers geschlossen werden kann.
Das Phänomen in der Frage sind Implementierungsdetails, die Sie niemals sehen würden, wenn Sie diese gefährliche Codezeile nicht verwenden würden, um die Zugriffsmodifikatoren durch Reflexion zu verletzen. Es ist klar, dass zwei (normalerweise) unveränderliche Zeichenfolgen dasselbe Zeichenarray verwenden können. Ob ein Teilstring dasselbe Array verwendet, hängt davon ab, ob dies möglich ist und ob der Entwickler daran gedacht hat, es gemeinsam zu nutzen. Normalerweise sind dies unsichtbare Implementierungsdetails, die Sie nicht kennen sollten, es sei denn, Sie schießen den Zugriffsmodifikator mit dieser Codezeile durch den Kopf.
Es ist einfach keine gute Idee, sich auf solche Details zu verlassen, die nicht erlebt werden können, ohne die Zugriffsmodifikatoren durch Reflexion zu verletzen. Der Eigentümer dieser Klasse unterstützt nur die normale öffentliche API und kann künftig Implementierungsänderungen vornehmen.
Abgesehen davon ist die Codezeile wirklich sehr nützlich, wenn Sie eine Waffe haben, die Sie am Kopf hält und Sie dazu zwingt, so gefährliche Dinge zu tun. Die Verwendung dieser Hintertür ist normalerweise ein Codegeruch, den Sie aktualisieren müssen, um einen besseren Bibliothekscode zu erhalten, bei dem Sie nicht sündigen müssen. Eine andere häufige Verwendung dieser gefährlichen Codezeile ist das Schreiben eines "Voodoo-Frameworks" (Orm, Injektionscontainer, ...). Viele Leute werden religiös in Bezug auf solche Rahmenbedingungen (sowohl für als auch gegen sie), daher werde ich es vermeiden, einen Flammenkrieg einzuladen, indem ich nichts anderes sage, als dass die überwiegende Mehrheit der Programmierer nicht dorthin gehen muss.