【初心者】Java質問・相談スレッド60【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0098デフォルトの名無しさん
NGNGよかないか。
・Object objは、HogeRec *hogeRecみたいなもん。
・Object[] objs は、HogeRec *hogeRecsみたいなもん。つまり上と変わらん。
・obj = new Object() は hogeRec = malloc( sizeof( HogeRec)) みたいなもん。
・objs = new Object[5]は、hogeRecs = malloc( sizeof( HogeRec) * 5)みたいなもん。
だからString[] s = new String[10] は stringArray = malloc( sizeof( String) * 10) のようなものに過ぎん。
そりゃCでもstringArray[0]とか参照したら、「なにいってんの?」すら言ってくれずにバスエラーだろ。
「文字列10個つくっちゃったぞー」ではなくて、「文字列10個分のメモリ確保したぞー」なわけだから。
おれは上記のような理解でいったので、そこでは躓かなかったなあ。
誤解を恐れずに言えば、JavaにはCのような意味での「配列」という型はないんだな。
あるのは「Arrayクラス」だけ。でStringが言語仕様に組み込まれているのと同じように、Arrayも
言語仕様に組み込まれている.....というよりも特別扱いされてて、なんとなくCっぽく使えるようになって
るけど、基本的にはやっぱりオブジェクトであることに変わりはない。
■ このスレッドは過去ログ倉庫に格納されています