Managed Images
A managed image is automatically cached in video memory (VRAM) by the JVM. When drawImage() is applied to its original version located in system memory (RAM), the JVM uses the VRAM cache instead, and employs a hardware copy (blit) to draw it to the screen. The payoff is speed since a hardware blit will be faster than a software-based copy from RAM to the screen. This idea is illustrated by Figure 5-6.

Figure 5-6. Drawing images and managed images
A managed image is not explicitly created by the programmer because there's no
ManagedImage class that can be used to instantiate suitable objects. Managed images are created at the whim of the JVM, though the programmer can "encourage" the JVM to make them.
Image, ImageIcon, and BufferedImage objects qualify to become managed images if they have been created with createImage(), createCompatibleImage(), read in with getImage() or ImageIO's read(), or created with the BufferedImage() constructor. Opaque images and images with BITMASK transparency (e.g., GIF files) can be managed. Translucent images can be managed but require property flags to be set, which vary between Windows and Linux/Solaris.
The JVM will copy an image to VRAM when it detects that the image has not been changed or edited for a significant amount of time; typically, this means when two consecutive drawImage() calls have used the same image. The VRAM copy will ...