![](/img/trans.png)
[英]Performace-Create object in every class or use static class for custom sharedpreferences
[英]for performace, static class or regular object creation
当前正在制作一个简单的Android SurfaceView基本游戏。 有很多这样的电话:
mSplatGraphic[idx] = new Random().nextInt(SPLAT_COUNT);
我的问题是,具有这样的“静态随机类”会更好吗?
public class SysRandom {
private static final Random RANDOM = new Random();
public static int nextInt(int limit) {
return RANDOM.nextInt(limit);
}
}
并改用以下代码:
mSplatGraphic[idx] = SysRandom.nextInt(SPLAT_COUNT);
我的想法是,使用简单的类,Random对象仅创建一次,并且不会不断创建和销毁,但是我不确定一旦编译并运行代码,这实际上就是在发生什么。
这可能是java noob问题,对不起! 如果有人将我指向链接,我很自学,很乐意删除这个问题:]
就个人而言,我不会使用您建议的任何一个。 首先,不需要每次需要一个随机数时都创建一个新的随机数。 这将导致大量不必要的垃圾收集,这会对fps产生负面影响。 使用您的SysRandom包装器应该会有所帮助,但我认为没有必要将其包装在该实用工具类中。 就个人而言,我会宣布
private final Random rand = new Random()
在使用mSplatGraphic
的类的顶部。 除非您静态访问rand
,否则我不会使其静态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.