括弧[]
?を入れるだけで、これが配列であることを認識します。
はい、そのように動作します。これは、配列を宣言および作成する (およびその要素にアクセスする) ための特別な構文です。
言語 (および JVM) は配列を特別にサポートしています (配列は頻繁に使用されるため)。あなたが見つけた括弧に加えて、特別な for-each-loop 、配列リテラルを作成する構文もあり、配列は vararg メソッドパラメーターに使用できます。
配列はオブジェクトではありませんか?
Java の配列はオブジェクトです (プリミティブ型の配列であっても)。
何が違うのですか?
変わらないものはあまりない…
配列を型の変数に割り当てることができることObject
(およびそれらを にすることができることnull
) を除いて、それらにはあまりオブジェクトのようなものはありません。たとえば、これらには equals や toString などのメソッドがありますが、それらの実装はおそらく期待どおりには動作しません (より有用なバージョンについては、Arrays クラスを参照してください)。また、配列を機能させる内部「クラス」をサブクラス化することもできません。
要約すると、配列はオブジェクトですが、特別なオブジェクトです。他のクラスと同じように構築される ArrayList とは異なります。独自の Collection を Java でロールすることもできますが、独自の配列を構築するには、独自の JVM を構築する必要があります。