【发布时间】:2011-06-26 13:16:53
【问题描述】:
不知这段代码会不会造成内存泄漏?因为我仍然不知道什么时候应该处理纹理。纹理应该放在方法的末尾吗?还是不用后单独处理?
private void loadAssets() {
Texture texture = new Texture(Gdx.files.internal("data/controls.png"));
TextureRegion[] buttons = TextureRegion.split(texture, 64, 64)[0];
left = buttons[0];
right = buttons[1];
jump = buttons[2];
cubeControl = buttons[3];
cubeFollow = TextureRegion.split(texture, 64, 64)[1][2];
dpad = new TextureRegion(texture, 0, 64, 128, 128);
batch = new SpriteBatch();
batch.getProjectionMatrix().setToOrtho2D(0, 0, 480, 320);
}
我真的不明白。为什么Java中仍然存在内存泄漏?
【问题讨论】:
-
解决“为什么Java中仍然存在内存泄漏”,即使Java有GC,但它仍然可能存在内存泄漏(但技术上与c/c++不同)。当您(直接/间接)实例化一个对象并且代码在某处维护对它的模糊引用时,通常会发生这种情况。该对象将永远不会被 GC。这就是我们在 Java 中所说的内存泄漏