[解決済み] Javaでは1次元配列の要素はプリミティブなデータ型でなければならないのでしょうか?
質問
コンピュータプログラミングの先生がJavaでそう主張しています。
1次元配列の要素はプリミティブなデータ型でなければならない
何時間も調べたのですが 任意の この主張を裏付けるような記述があります。
Javaでオブジェクトの配列を作れることは知っています。
CLI の引数も、プログラムに渡すのは
String
の配列になります。
彼女の正当な理由は
String[]
は、文字の多次元配列と見なすことができる。これは理解できるのですが、これがすべてのオブジェクトに当てはまるとは思えません。
さらに、オブジェクトを格納した配列は多次元になるため、1次元の配列ではオブジェクトを格納できないと言い切るのです。
の配列がどのようなものなのか理解できません。
Object
,
Integer
と
Scanner
は多次元にすることができる。
今、とても混乱しているのですが、何か見落としていることはありませんか?
どのように解決するのですか?
配列は、以下の要素を格納することができます。
任意の型
- プリミティブ
int
または
long
または
float
は、ラッパー
Integer
のようなオブジェクトは
String
,
Person
,
Animal
など。
を理解する必要があります。 Array のデータ構造として保存されることを意味します。 連続的 のブロックは、それが何であれ、メモリです。 しかし 同じデータ型の
- と プリミティブ 型の場合、実際の値の連続したブロックである。 すなわち int の配列は、各 int が 4 バイトを占め、各 int が 2 バイトを占めます。 ロング はそれぞれ8バイトを占有し、以下同様です。
- の配列で オブジェクト (String、Person、Animal) を格納する配列です。 参照変数 (これはC++のようなポインタではありません)これらのオブジェクトはすべて、連続したブロックになります。
例えば
Person p1 = new Person()
と
Person p2 = new Person()
を作成し、配列に格納します。
Person[] arr = {p1, p2}
.
は アール はリファレンスを持つことになります。 p1 と p2 をメモリに保存し、その配列をたどることで実際の 人物 オブジェクトは、それ自体、多くのStringやint値(id、name、addressなど)が混在している可能性があります。このため、配列の効率性は保たれています。
というわけではありません。 arr が多次元になることは一切ありません。
このことは、他のいろいろなところでもっと詳しく読んで、先生にお返ししてください。
関連
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】Javaの".class expected "について
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] Javaで2次元の配列を作成するためのシンタックス
-
[解決済み】PHPで配列やデータをソートするにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】"比較メソッドはその一般契約に違反する!"
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】Java JDK - doubleからintへの非可逆変換の可能性
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】java.io.IOException: 壊れたパイプ
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?