Verkettung von Null-Strings in Java
In Java führt die Verkettung eines Null-Strings mit einem anderen String nicht zu einer NullPointerException. Dieses Verhalten mag überraschend erscheinen, wird aber durch die Java Language Specification (JLS) definiert.
Warum gelingt die Verkettung für Nullzeichenfolgen?
Gemäß JLS 5 Abschnitt 15.18.1.1: Wenn eine Referenz null ist, wird sie vor der Verkettung in die Zeichenfolge „null“ konvertiert. Diese Konvertierung wird automatisch vom Compiler durchgeführt.
Wie funktioniert die Verkettung mit Null-Strings?
Hinter den Kulissen optimiert der Compiler den Verkettungsvorgang, um einen StringBuilder zu verwenden. die effizient mit Nullwerten umgehen kann. Im Bytecode lautet der entsprechende Code zum Verketten einer Nullzeichenfolge „s“ mit der Zeichenfolge „hello“:
String s = null; s = new StringBuilder(String.valueOf(s)).append("hello").toString();
Der StringBuilder-Konstruktor übernimmt den konvertierten Wert der Nullzeichenfolge, der „null“ ist. und hängt es an die Zeichenfolge „hello“ an, um die endgültige Zeichenfolge „nullhello“ zu erstellen.
Hinweis: Die Zeichenfolgenverkettung ist eine der wenigen Optimierungen, die der Java-Compiler durchführen darf. Die genaue Implementierung kann je nach verwendetem Compiler variieren, das Verhalten der Nullverkettung bleibt jedoch konsistent.
Das obige ist der detaillierte Inhalt vonWie geht Java mit der String-Verkettung mit Nullwerten um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!