アプリ版:「スタンプのみでお礼する」機能のリリースについて

String [ ] sa = new String [3] ;

この一文の意味が全くわかりません。
この時いったい何が起きているのでしょうか。
String 型 というのは特にサイズが決まっていませんよね。

C言語で int a[5];  なら
aという名前で int型のサイズの分だけ5個メモリが確保された、という意味になりますね。
領域が確保できるのは、int型のサイズが決定しているからです。

では String [ ] sa = new String [3] ; は?
new はいったい何をしているのか。
仮にメモリに何かをロードしているのなら何をロードしているのか。
そしてそのロードしたものの役割は何なのか。

よろしくおねがいします

A 回答 (1件)

>String 型 というのは特にサイズが決まっていませんよね。



Stringは、オブジェクトです。オブジェクトは変数に「参照」が渡されます。(要するに、Cのポインタに相当するもの)
つまり、new String [3] は、Stringを3つ保管する配列ではなく、Stringの参照を3つ保管する配列です。

ちなみに、Javaでは配列もオブジェクトです。配列は、オンデマンドクラス(実行時にその場で生成されるクラス)で、newを使っているのはそのためです。すなわち、Stringの参照を管理する要素数3つの一次元配列クラスのインスタンスをnewしているわけですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/01/17 10:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!