2

パフォーマンスとメモリの変数をインスタンス化する最も効率的な方法は何ですか?

これ :

Context context = this;
Resources resources = context.getResources();
Drawable drawable = resources.getDrawable(R.drawable.image);
ListView list = (ListView) context.findViewById(R.id.list);
list.setBackgroundDrawable(drawable);

またはこれ:

((ListView) findViewById(R.id.list)).setBackgroundDrawable(getResources().getDrawable(R.drawable.image));

またはそれは問題ではありません、それは同じことなので、私は私が最も好きなものに固執する必要がありますか?

4

2 に答える 2

1

関係ない。同じ数のオブジェクトが作成されます。読みやすくするために、最初のものをお勧めします。ただし、最初の行はスキップします。

于 2012-12-05T14:48:07.080 に答える
1

実際には、ガベージコレクションとは何の関係もありません。実行速度とコードの可読性についてです。コードブロック({}の間)でグローバル変数を何度も参照する場合、ローカル変数へのアクセスはグローバル変数よりも高速であるため、通常はローカル変数に割り当てます。同じ引数を持つメソッドへの複数の呼び出しがある場合も同じことを行います。この場合、メソッドを複数回実行する必要はありません。

于 2012-12-05T15:02:59.760 に答える