-1

SystemJavaのクラスに関連する2つの質問があります。

まず、in (入力) および out (出力) オブジェクトはどこで初期化されますか? これらのオブジェクトは静的として宣言され、Systemクラスで初期化されてSystemおらず、クラスにはコンストラクターがありません。

2 番目の質問は、in (入力) オブジェクトが入力ストリームとして宣言されているため、バイト データを読み取り、out オブジェクトもoutputStreamすべてのタイプのプリミティブ データを書き込むことができる理由です。ストリームは、バイト データの読み取り/書き込みに使用されます。toStringメソッドを呼び出すとは言わないでください。

4

1 に答える 1

3

Systemクラス メンバーinout、およびはerr、プライベート関数 で初期化されますinitializeSystemClass()。この関数は、JVM 初期化手順によって呼び出されます。

メンバーoutは. _ _ OutputStreamでありPrintStream、拡張 API があります。print()プリミティブ型の引数を受け入れるすべてのメソッドは、対応するメソッドを使用して、値を表すオブジェクトString.valueOf()を作成します。Stringこれらの文字列はOutputStreamWriter、特定の文字エンコーディングを使用してテキストをバイトにエンコードするインスタンスを通過します。結果のバイトは、適切なファイル記述子に書き込まれます。

于 2016-01-26T01:48:28.517 に答える