オブジェクト指向プログラミング初心者です。画面のさまざまなサイズの長方形をさまざまな間隔でキャプチャする静的メソッドを使用してクラスを作成しました。キャプチャは、静的 Robot インスタンスを使用して静的 BufferedImage に保存されます。
myStaticBufferedImage = myStaticRobot.createScreenCapture(arbitrarySizeRectangle);
データに対して一部の操作が実行されます (イメージを bmp ファイルに書き込む場合もある)。次のキャプチャでは、前のキャプチャの画像データは必要ありません。
bufferedImage には画面解像度の最大サイズまでの可変サイズのデータが含まれるため、アプリケーションが使用を開始する前にそのように宣言する必要がありますか?
private static BufferedImage myStaticBufferedImage = new BufferedImage(RESOLUTION_X, RESOLUTION_Y, APPROPRIATE_IMAGE_TYPE);
これにより、画像を繰り返しキャプチャするときに、リークや非効率性なしに再利用可能なチャンクがメモリに割り当てられますか? それとも、createScreenCapture メソッドを使用するたびにメモリがいっぱいになり、myStaticBufferedImage に新しいポインタを割り当てるだけですか?
このアプリは、CPU を集中的に使用するソフトウェアと一緒に OSX Lion で実行しています。メモリ管理のベストプラクティスは何ですか? ありがとう!