まず、配列の型です
Java配列は、すべての配列要素が同じデータ型を持つことが必要したがって、アレイ内、アレイ要素タイプは、一意である、すなわちデータのタイプの配列ではなく、データ・ストレージの複数種類に格納されています。アレイの初期化が完了すると、メモリ空間内のアレイが固定されます。配列がクリアされている場合でも、彼は占有スペースがまだ保持さ。
第二に、配列の定義
二つの方法で定義されたJavaの配列:
タイプ[] arrayName。
araryNameを[]型。
最初の形式だけでなく、良い意味論ですが、また、より良い可読性を持っているので、最初の形式は、推奨されます。
タイプ[]はarrayNameは変数名、変数の型です。これが私たちの一般的な使用法と一致しています。
アレイは、変数の参照のタイプであるので、変数を定義するためにそれを使用する場合、それだけで(つまり、ポインタの定義である)基準変数を定義する(メモリ空間を開く)、この参照変数はまだ有効なポイントではありませんコンテンツ(最初の配列要素のアドレスが格納されている、すなわちことなく、メモリ空間の内容を初期化しません)。したがって、アレイが定義されているときに、配列の長さを指定しない ,,それはメモリアレイ要素に格納されていない場合、アレイは、唯一のアレイを使用することができません使用する前に初期化。
第三に、配列の初期化
初期アレイは、メモリ空間が割り当てられ、各アレイの初期値が与えられます。
注:アレイは、各メモリ素子に割り当てられると(配列の長さを指定する)、各メモリ空間の内容は、このメモリの内容が空であっても、配列に格納された値であり、これはヌル値(NULL)であります。;プログラマによって指定さの1つの配布システムにより指定されたいずれかにかかわらず、配列限り、配列要素に割り当てられスペースを初期化するためにどの方法の、配列要素が初期値、取得の初期値を持つ二つがあります。
配列の初期化方法:
(1)静的初期化:初期化が明示的にプログラマによって各配列要素の初期値を指定し、システムは、配列の長さによって決定されます。
(2)動的な初期化は:システムによって割り当てられた配列の長さ指定プログラマは、初期化配列要素中に初期化されます。
3.1静的初期化
構文:
1 arrayName = 新たな新しいタイプ[] {エレメント1、element12、element13 ...} 2件のデータがサブアレイ配列型上で定義されたタイプが定義され得る同じタイプである必要があり、ここで、type--配列要素を入力しますカテゴリ
例:
1 クラス ArrayTest1 2 { 3。 公共 静的 ボイドメイン(文字列[]引数) 4。 { 5。 // 方法: 6。 のSystem.out.println( "初期化方法:" ); 7 // int型配列の変数を定義 8 INT []配列1; 9 // だけ長さを指定しない、アレイの初期化における配列要素の初期値を指定し、静的初期化方法を使用する 10 配列1 = 新たな新しい INT [] {5,6,8,10を}; 図11 のSystem.out.println (配列1); // ポインタアドレス 12がある ため(INT I = 0; I <4; I ++ ) 13である { 14 System.out.print( "の" + ARRAY1 [I]); 15 } 16 17。 @ 方法二: 18である のSystem.out.println( "\ 2つのメソッドをN初期化:" ); 19 //は、オブジェクトを定義します配列型配列変数、アレイのタイプへの参照のみ 20は、 オブジェクト[]配列2; 21である // 静的初期化方法のタイプを定義初期化配列型配列要素を指定された使用の配列要素のサブクラスの一種である 22である 配列2 = 新しい新しい文字列[] { "こんにちは"、 "世界"、 "!" }; 23である ため(INT。; I <3 I ++ I = 0 ) 24 { 25 System.out.printの( "" +配列2 [I]); 26である } 27 // 方法3: 28 のSystem.out.println( "\ nは初期化方法3:" ); 29 オブジェクト[] ARRAY3で; 30 // タイプが静的初期化を使用して、指定された配列の要素を表示型は型のサブクラスであり、 31は ARRAY3で= 新しい新しいオブジェクト[] { "良好"、 "夜" }; 32 用(INT I = 0; I <2; I ++ ) 33であり 、{ 34である System.out.printの( "" + ARRAY3で[I]); 35 } 36 } 37 }
結果:
ファイル名を指定して実行するJava ---------- ---------- 初期化メソッド: [I @ 9e89d68 5 6 8 10 メソッドの二つの初期化: 世界こんにちは ! 方法3つの初期設定: おやすみ 出力完了(加工 0秒) -正常終了
Java言語は、親クラスの継承とサブクラスをサポートすることができ、オブジェクト指向のプログラミング言語であるため:子クラスとインスタンスは、親クラスの特別なインスタンスです。上記のタイプの例は、文字列オブジェクトのインスタンスです。
また、簡単な構文があります:
タイプ[] arrayName = {要素1、要素2、要素3 ...}
1 クラス静态初始化 2 { 3 パブリック 静的 ボイドメイン(文字列[]引数) 4 { 5 のint []配列1 = {1,4,7,5 }。 6 用(intは I ++; I <4 I = 0 ) 7 { 8 System.out.print(」「+ ARRAY1 [I])。 9 } 10 オブジェクト[]配列2 = {1.23,2.3,5.6 }。 11 のために(INTが I = 0; I <3; I ++ ) 12 { 13 System.out.print(」「+配列2 [I]); 14 } 15 } 16 } 17。 結果: 18である ---------- ----------は、Javaを実行する 19。 1. 4. 5. 7 2.3 1.23 5.6 20で出力完了正常終了- (0秒かかりました)
3.2動的な初期化
動的な初期化は、配列の長さは、システムによって初期値として指定された各配列を指定します。動的な初期化ステートメントの形式:
arrayName = 新しいタイプ[長さ]
静的初期化方法と同様、本明細書で前にアレイ定義とサブクラスのタイプまたはタイプを使用してアレイ型定義型で使用されるのと同じタイプ。
{ 公共 静的 ボイドメイン(文字列[]引数) {
//方法: // アレイ定義 INTを[]配列1; // 初期化 配列1 = 新たな新しい INT [5 ]; のための(INT。I = 0; I <5; I ++ ) { System.out.print( "「+ ARRAY1 [I])。 } 方法II // オブジェクト[] =配列2 新しい新しい文字列[5 ]; //初期化コードの定義とコードのシンプルさを維持しながら ため(INT I = 0; I <5; I ++ ) { System.out.print( "「+ 配列2 [I])。 } } } 出力: ファイル名を指定して実行するJava ---------- ---------- 0 0 0 0 0 ヌル ヌル ヌル ヌル ヌル 出力完了(加工 0秒) -正常終了
動的な初期化が行われ、プログラマの必要性は、すなわち各要素の指定、メモリ空間を配列の長さを指定し、これらの要素のためにシステムが自動的に割り当て初期値を必要としました。初期値場合、システムは、次の規則に従って初期値を代入します。
整数配列(バイト、ショート、整数、ロング) - 0の初期値
文字列 - 「\ u0000の」の初期値
(二重フロート)浮動小数点アレイ - 0.0に初期化
ブール型の配列(ブール値) - 初期値がfalseであります
参照型(クラス、インタフェース、配列)の配列 - 最初はnull
注:DOは同時に各配列要素に割り当てられている間、配列の長さを指定していない、すなわち、静的および動的な初期化初期化の両方を使用しません
コンパイラは、変数の型を推論することができるように、限り定義内の変数に割り当てられた初期値 - ローカル変数アレイタイプの定義において、使用するvar変数を定義します。
例えば:
1 VARのARRAY1 = 新しい文字列[] { "こんにちは"、 "世界" }。 2 VARの配列2 = 新しい ダブル [4]
注:静的配列の初期化を使用している場合*あなたは配列変数を定義するためにVARを使用することはできません。