• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インスタンス?new?オブジェクト? の意味)

インスタンス?new?オブジェクト? の意味

このQ&Aのポイント
  • インスタンス?new?オブジェクト? の意味についてわかりません。String型の配列saがnew String[3]となっている理由を知りたいです。
  • C言語でint a[5]なら、int型のサイズの分だけ5つのメモリが確保されます。一方、String[] sa = new String[3]はどのような意味を持っているのでしょうか?newは何をしていて、その役割は何なのでしょうか?
  • String型の配列sa = new String[3]の意味が分かりません。newは何を示しているのでしょうか?また、String[3]とは具体的にどのような役割を果たすのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.1

>String 型 というのは特にサイズが決まっていませんよね。 Stringは、オブジェクトです。オブジェクトは変数に「参照」が渡されます。(要するに、Cのポインタに相当するもの) つまり、new String [3] は、Stringを3つ保管する配列ではなく、Stringの参照を3つ保管する配列です。 ちなみに、Javaでは配列もオブジェクトです。配列は、オンデマンドクラス(実行時にその場で生成されるクラス)で、newを使っているのはそのためです。すなわち、Stringの参照を管理する要素数3つの一次元配列クラスのインスタンスをnewしているわけですね。

JoyWorld
質問者

お礼

int型でも配列のときnewをするのはそのためだったんですね。 ありがとうございました。