Java垃圾收集和图形处理方法

时间:2012-12-31 02:35:54

标签: java graphics sync dispose toolkit

我正在创造一个游戏(Snake Clone)作为一种爱好。我正在查看Java API中Graphics类的dispose方法。当我注释掉dispose方法时,我的动画以相同的方式工作,无论是否有它。在Java API中,dispose方法执行此操作 - 释放图形上下文正在使用的系统资源。 Java垃圾收集管理程序的内存不是类似于dispose正在做的事情吗?我应该保留处理方法吗?

API在解释同步方法方面没什么帮助。但是从我在其他论坛中读到的内容来看,ToolKit类的sync方法是确保绘图操作(比如我想的paintComponent方法)刷新到显卡。图形卡的工作是清除程序以前图形上下文的剩余部分吗?

以下是代码:

 public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Toolkit.getDefaultToolkit().sync();
            g.dispose();

     }

1 个答案:

答案 0 :(得分:7)

说到Graphics,有一个简单的原则。

如果您明确创建它(例如BuffereImage.createGraphics()),则将其丢弃。

paintComponent(Graphics g)中的OTOH实例g由工具包提供,并在需要时进行处理。在您自己的代码中执行此操作将导致“不可预测的”渲染。