代码评估:这被认为是一种不好的做法吗?

时间:2017-11-19 16:58:05

标签: java

这段代码被视为不良做法吗?是否使用了比它应该更多的内存?

int[] generateCoordinates(){
    return new int[]{
            new Random().nextInt(100),
            new Random().nextInt(100),
            new Random().nextInt(100)
    };

1 个答案:

答案 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>