1. ホーム

[解決済み】配列のlengthプロパティはどこで定義されていますか?

2022-04-17 14:18:22

質問

の長さを決定することができます。 ArrayList<E> そのパブリックメソッド size() のように

ArrayList<Integer> arr = new ArrayList(10);
int size = arr.size();

同様に Array オブジェクトを使用します。 length プロパティ

String[] str = new String[10];
int size =  str.length;

一方 size() メソッドの ArrayList の内部で定義されています。 ArrayList というクラスがありますが、これはどこにあるのでしょうか? length のプロパティは Array が定義されているか?

どのように解決するのですか?

配列はJavaの特別なオブジェクトであり、配列には length である。 final .

配列の "クラス定義" はなく(どの .class ファイルにもありません)、配列は言語自体の一部です。

<ブロッククオート

10.7. 配列のメンバー

配列型のメンバは次のすべてである。

  • public final フィールド length は,配列の構成要素数を格納する. length は正またはゼロである。
  • public メソッド clone の同名のメソッドをオーバーライドします。 Object であり、チェックされた例外を投げない。の戻り値の型は clone メソッドで、配列型 T[]T[] .

    多次元配列のクローンは浅いものです.つまり,新しい配列が1つだけ作成されます.サブ配列は共有されます。

  • クラスから継承したすべてのメンバ Object の唯一のメソッドです。 Object が継承されないのは、その clone メソッドを使用します。

リソースです。