人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javaについて質問です。
下記のようにfor文の中で変数宣言し、何らかの値を設定するような処理があるとします。
この場合、bar変数は毎回インスタンスが作成されるのでしょうか?

for(int i = 0; i < 10; i++) {
Hoge bar = getBar();
}

毎回、インスタンスが作成されるならば、下記のようにするべきでしょうか?
Hoge bar;
for(int i = 0; i < 10; i++) {
bar = getBar();
}

●質問者: Gaasu
●カテゴリ:コンピュータ
✍キーワード:BAR hoge Java インスタンス 作成
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

getBar() メソッドの実装次第です。

getBar() が呼ばれる度に、Hoge クラスのインスタンスを new してなければ、

ループの度にインスタンスが作成されることはありません。


少なくとも、質問文にある二つのコードは、変数のスコープが違うだけで、インスタンスの生成については、全く等価です。


もしかしたら、id:Gaasu さんは c++ 経験者ですか?

java は、メソッド呼び出し時の引数も戻り値も「参照渡し」しかありません。

そもそも、スタックに生成されるインスタンスが無く、ヒープにしかインスタンスは生成されません。

◎質問者からの返答

よく分かりました。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ