这段代码被视为不良做法吗?是否使用了比它应该更多的内存?
int[] generateCoordinates(){
return new int[]{
new Random().nextInt(100),
new Random().nextInt(100),
new Random().nextInt(100)
};
答案 0 :(得分:2)
是的,它使用的内存比它应该多,但是如果你只拨打generateCoordinates()
几次,那就没那么大了。
也就是说,当一个实例可以满足您的所有需求时,没有理由创建Random
的多个实例:
int[] generateCoordinates() {
Random random = new Random();
return new int[] {
random.nextInt(100),
random.nextInt(100),
random.nextInt(100)
};
}
如果多次调用generateCoordinates()
,将random
作为实例变量是有意义的,因为实例化和垃圾收集大量Random
对象会变得很昂贵。 / p>