- - PR -
変数の宣言とnew
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-11-10 20:30
【1】
ArrayList<String> al = null; for(int i=0;i<3;i++){ al = new ArrayList<String>(); } 【2】 for(int i=0;i<3;i++){ ArrayList<String> al = new ArrayList<String>(); } 上記【1】と【2】で 【1】はメモリ上にalという入れ物は1個で、その中身を3回空っぽにしている 【2】はメモリ上にalという入れ物を3個別々につくっている という認識であっていますでしょうか? | ||||
|
投稿日時: 2007-11-11 00:07
「空っぽにしている」ではなく「空っぽのArrayListインスタンスを代入している」ですが、だいたい合ってると思います。 ただし、だからと言って【1】の方が効率がいいかというと、そうでもないです。実行時の効率はどちらも同じぐらいであると推測できます。ローカル変数の領域確保はあまりコストがかかりませんので。 コーディングスタイルとしては一般的には【2】の方が好ましいです。変数の生存期間が必要最小限になっているからです。 | ||||
|
投稿日時: 2007-11-12 02:26
どちらもメモリ上に3回領域確保を行っています
| ||||
|
投稿日時: 2007-11-12 10:02
スコープが違うだけでほとんど同じですね。
forを抜けたあとalを使うのかどうか。 |
1