5

これを書くと

 String[] fruits = {"Apple", "Pear"};

C の同様のコードで発生するように、コンパイル時に配列と文字列が作成されることを期待します。それは正しいですか? 配列とそのコンテンツは通常、コンパイル時または実行時に作成されますか?

4

2 に答える 2

8

Java のオブジェクトである配列が作成されます。これは実行時にのみ発生します。

多くのオブジェクトは Java プログラムで作成され、オブジェクトの作成は VM 自体が初期化された後にのみ行われることに注意してください。1 つの静的配列の初期化がパフォーマンスに大きな負担をかけることはありません。

配列を変更せず、多くのインスタンスがある場合は、必ず static として宣言してください。

static String[] fruits = {"Apple", "Pear"};

静的にコンパイルされた配列との重要な違いにも注意してください。Java 配列は変更可能です。長さを変更することはできませんが、要素を変更 (または無効化) することはできます。Java 配列は、最終的な静的であっても、実際には一定ではありません。

于 2012-11-09T15:39:06.167 に答える
5

配列は、Java の特別なオブジェクトです。したがって、それらは実行時に作成されます。

Java言語仕様による

Java プログラミング言語では、配列はオブジェクト (§4.3.1) であり、動的に作成され、Object 型の変数に割り当てることができます (§4.3.2)。

JLS 15.10は、配列作成式に関する詳細情報を提供します。

于 2012-11-09T15:39:55.483 に答える