Память, занятая объектами Java, которые больше не доступны, может быть восстановлена сборщиком мусора виртуальной машины . Как отмечали другие, это автоматически. Напротив, нормальная работа программы может выделять определенные системные ресурсы, которые должны быть явно освобождены. Примером могут служить собственные ресурсы экрана. Частичный список таких методов включает в себя следующие:
java.awt.Component.BltBufferStrategy#dispose() java.awt.Component.FlipBufferStrategy#dispose() java.awt.CompositeContext#dispose() java.awt.Graphics#dispose() java.awt.im.InputContext#dispose() java.awt.im.spi.InputMethod#dispose() java.awt.image.BufferStrategy#dispose() java.awt.Image#flush() java.awt.PaintContext#dispose() java.awt.Window#dispose() java.io.InputStream#close()* java.io.OutputStream#close()* java.sql.Connection#close() java.util.Timer#cancel() javax.imageio.ImageReader#dispose() javax.imageio.ImageWriter#dispose() javax.print.StreamPrintService#dispose() javax.security.sasl.SaslClient#dispose() javax.security.sasl.SaslServer#dispose() javax.swing.DebugGraphics#dispose() javax.swing.JInternalFrame#dispose() org.ietf.jgss.GSSContext#dispose() org.ietf.jgss.GSSCredential#dispose() * Includes subclasses