4

アプリケーションに次のコードを書きました。( オフィスワーク )

@Override
public List<Outlet> getAllOutletForTouch() {
    return outletDao.getOutlets();
}

これは私の同僚が書いたコードです。

@Override
public List<Outlet> getAllOutletsForMobile() {
    List<Outlet> outletList = outletDao.getOutlets();
    return outletList;
}

彼は新しい変数を作成し、値を割り当てて、値を返しました。メソッドを直接呼び出して値を返しただけです。これを行うための規則は何ですか?

4

4 に答える 4

3

あなたの場合は最初のものを好むでしょう。2番目のケースでは、メモリを占有するスレッドスタックに移動する新しい参照を不必要に作成しています。だから私は最初に行きます。

編集:

コメントに基づいて私の答えを詳しく説明します。オブジェクトはヒープ上に作成されますが、そのオブジェクトへのすべての参照はスレッド スタックに移動します。

したがって、複数のスレッドが同じオブジェクトを参照する場合、それらは独自の参照をスタックに格納します。

編集:

リンクを確認してくださいスタックまたはヒープ内の変数参照はどこに割り当てられていますか? 参照の保存方法の詳細

于 2013-04-17T05:01:57.507 に答える
0

#2 の場合、パフォーマンスが低下することはありません。十分な頻度で実行される場合、VM が最適化を行います。

2 番目のスタイルは冗長で不必要ですが、大したことではありません。

于 2013-04-17T05:37:47.190 に答える