我想知道如果通过主类访问它来避免重复数组是一个值得做的优化。
这可能是我遗漏的一个基本概念,如果是这样,那么我为我的不良解释道歉。
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%确定存在由于'优化'而没有处理意义。
感谢您的帮助!
答案 0 :(得分:0)
只要数组在应用程序中的任何位置都没有变化,就可以了。您可以100%确定您只使用一个主副本。这也没有任何处理含义 - 只要注意经常使用静态而不跟踪可能会导致代码邋but,但如果值不需要在任何地方更改,那么它就没问题了。