程序中使用的一段代码是这样的: x.add(getResources().getString(R.string.none));
x.add(getResources().getString(R.string.today));
x.add(getResources().getString(R.string.tomorrow));
...看着很低效,觉得应该可以更简化一些,然后我把代码变成Resources res = getResources();
x.add(res.getString(R.string.none));
x.add(res.getString(R.string.today));
x.add(res.getString(R.string.tomorrow));
...可是第二段代码真的比第一段代码高效吗?这两种方法编译器是否生成相同的字节代码?
2 回答

长风秋雁
TA贡献1757条经验 获得超7个赞
直接访问局部变量要比直接访问类的字段要快,自然也是比使用getter快。所以第二种方式要高效点。你去看一看《如何成为android高手》这一篇文章,里面有提到。

慕婉清6462132
TA贡献1804条经验 获得超2个赞
编辑器不会产生相同的字节码,但是如果getResources()
是一个简单的方法,然后JIT-compiler
在执行时间可以有效地运行相同的代码。
就我个人而言,我更喜欢第二种方法,因为它更清楚更可读。
添加回答
举报
0/150
提交
取消