Java での Null 文字列の連結
Java では、Null 文字列を別の文字列と連結しても NullPointerException は発生しません。この動作は驚くかもしれませんが、Java 言語仕様 (JLS) で定義されています。
NULL 文字列の連結はなぜ成功するのですか?
JLS 5 によると、 15.18.1.1 項では、参照が null の場合、連結前に文字列 "null" に変換されます。この変換はコンパイラによって自動的に実行されます。
NULL 文字列との連結はどのように機能しますか?
コンパイラは舞台裏で StringBuilder を使用するように連結操作を最適化します。これにより、NULL 値を効率的に処理できます。バイトコードでは、null 文字列「s」を文字列「hello」と連結するための同等のコードは次のとおりです。
String s = null; s = new StringBuilder(String.valueOf(s)).append("hello").toString();
StringBuilder コンストラクターは、null 文字列の変換された値 (「null」) を受け取ります。そして、それを文字列「hello」に追加して、最終的な文字列「nullhello」を作成します。
注: 文字列の連結は、Java コンパイラが実行できる数少ない最適化の 1 つです。正確な実装は使用するコンパイラによって異なる場合がありますが、null 連結の動作は一貫しています。
以上がJava は Null 値を含む文字列連結をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。