通过避免对象重复进行优化?

时间:2014-02-24 20:47:40

标签: java memory optimization static

我想知道如果通过主类访问它来避免重复数组是一个值得做的优化。

这可能是我遗漏的一个基本概念,如果是这样,那么我为我的不良解释道歉。

public class Sinebow {

private int c = -1;
private final int t;

public Sinebow() {
    this.t = (RainbowGear.rb.length - 2);
}
public Color getNext() {
    if (c > t)
        c = -1;
    c++;
    return RainbowGear.rb[c];
    }
}

上面的类创建了几次并存储在主类的HashMap中。以前SineBow初始化为:

public Sinebow(Color[] init){
    this.<local_color[]_var> = init;
    this.t = (init.length - 2);
}

基本上,静态Color数组的副本已传递到SineBow的每个实例中。

public static Color[] rb = new Color[64];

数组不会更改,它会在启动时填充,并且不会通过程序更改。

我几乎99%肯定从每个Color实例访问单个SineBow数组会导致内存中没有额外的数组副本,但是我只有75%确定存在由于'优化'而没有处理意义。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

只要数组在应用程序中的任何位置都没有变化,就可以了。您可以100%确定您只使用一个主副本。这也没有任何处理含义 - 只要注意经常使用静态而不跟踪可能会导致代码邋but,但如果值不需要在任何地方更改,那么它就没问题了。