static private ArrayList seriesColors = new ArrayList();
public Audiogram(int widthParm, int heightParm)
throws Exception
{
super(widthParm, heightParm);
seriesColors.add(new Color( 0, 0, 255));
// Set the default settings to an industrial audiogram
setType(INDUSTRIAL_AUDIOGRAM);
}
У меня есть около пяти методов, подобных этому, но хотелось бы знать, может ли этот код вызвать утечку памяти, поскольку seriesColors является статическим.имеет ли этот код утечку памяти?
Если есть утечка памяти, то для чего это решение?
private static final ColorModel rgbModel = ColorModel.getRGBdefault();
public void setPixels(int x, int y, int w, int h, ColorModel model, int[] pixels, int off, int scansize)
{
if (model == rgbModel) {
try {
encodePixelsWrapper(x, y, w, h, pixels, off, scansize);
}
catch (IOException e) {
iox = e;
stop();
return;
}
}
else {
int[] rgbPixels = new int[w];
for (int row = 0; row < h; ++row) {
int rowOff = off + row * scansize;
for (int col = 0; col < w; ++col) {
rgbPixels[col] = model.getRGB(pixels[rowOff + col]);
}
try {
encodePixelsWrapper(x, y + row, w, 1, rgbPixels, 0, w);
}
catch (IOException e) {
iox = e;
stop();
return;
}
}
}
}
public static ColorModel getRGBdefault() {
if (RGBdefault == null) {
RGBdefault = new DirectColorModel(32,
0x00ff0000, // Red
0x0000ff00, // Green
0x000000ff, // Blue
0xff000000 // Alpha
);
}
return RGBdefault;
}
Из этих двух кодов, имеющих серьезные недостатки?
«Это мой второй пост по тому же вопросу». - lol – aioobe
, но оба звучат разные ... – John
@ Джон - вы пробовали инструмент для проверки, например OptimizeIt? – justkt