Java での Null 文字列の連結
Java では、Null 文字列を別の文字列と連結しても、NullPointerException はスローされません。期待する。代わりに、結果は先頭に「null」が付加された新しい文字列になります。
なぜこれが期待される動作ですか?
Java 言語仕様 (JLS) による):
"[null 文字列への] 参照の場合null の場合、文字列 'null' (4 つの ASCII 文字 n、u、l、l) に変換されます。"
したがって、null 文字列は、前に自動的に "null" に変換されます。連結が行われます。
この動作はどうですか実装されていますか?
コンパイラは、パフォーマンスを向上させるために文字列の連結を最適化します。これは、StringBuilder オブジェクトを使用して連結結果を蓄積することによって行われます。
null 文字列が見つかった場合:
- null 文字列が最初の引数の場合、String.valueOf( ) を使用して、null 以外の文字列 (「null」) に変換します。
- null 文字列が最初の引数ではない場合、 Null 文字列を StringBuilder に追加し、その結果に対して String.valueOf() を呼び出します。
例
次のコードを考えてみましょう:
String s = null; s = s + "hello"; System.out.println(s); // prints "nullhello"
コンパイラはこのコードを次のように最適化します。同等:
s = new StringBuilder(String.valueOf(s)).append("hello").toString();
s が null であるため、String.valueOf(s) は「null」を返し、これが StringBuilder に追加されて文字列に変換されます。
以上がJava で Null 文字列を連結すると NullPointerException がスローされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

メモ帳++7.3.1
使いやすく無料のコードエディター

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
