Garbage Collection
- Objects are dynamically allocated by using the new operator.
- In some languages, such as C++, dynamically allocated objects must be manually released by use of a delete operator.
- Java handles deallocation for you automatically. The technique that accomplishes this is called garbage collection.
- When no references to an object exist, that object is assumed to be no longer needed, and the memory occupied by the object can be reclaimed.
Garbage collection (GC) is a form of
automatic memory
management. The garbage collector, or just collector,
attempts to reclaim garbage,
or memory occupied by objects that
are no longer in use by the program.
Garbage collection was invented by John McCarthy around
1959 to solve problems in Lisp.
Garbage collection is
often portrayed as the opposite of manual memory
management, which requires the programmer to specify which objects
to deallocate and return to the memory system. However, many systems use a
combination of approaches, including other techniques such as stack allocation and region inference.
Resources other than memory, such as network sockets, database handles, user interactionwindows,
and file and device descriptors, are not typically handled by garbage
collection. Methods used to manage such resources, particularly destructors,
may suffice to manage memory as well, leaving no need for GC. Some GC systems
allow such other resources to be associated with a region of memory that, when
collected, causes the other resource to be reclaimed; this is called finalization. Finalization
may introduce complications limiting its usability, such as intolerable latency
between disuse and reclaim of especially limited resources, or a lack of control
over which thread performs the work of reclaiming.
0 comments:
Post a Comment