We rely heavily on Java's automatic memory management. When we allocate memory for an object or array using the keyword new, we don't think about where the memory comes from. When an object or array becomes unreachable, it magically disappears.
Some languages, notably C and C++, do not have automatic memory management. Section 16.1 discusses the alternative: explicit memory management. This is worth knowing, because we may be called upon to work in one of these languages some day, and because we can sometimes optimize a Java program by using explicit memory management.
Section 16.2 discusses the algorithms behind automatic memory management systems like Java's.
Explicit Memory Management |
Part I: Object-Oriented Programming
Encapsulation
Polymorphism
Inheritance
Part II: Linear Structures
Stacks and Queues
Array-Based Structures
Linked Structures
Part III: Algorithms
Analysis of Algorithms
Searching and Sorting
Recursion
Part IV: Trees and Sets
Trees
Sets
Part V: Advanced Topics
Advanced Linear Structures
Strings
Advanced Trees
Graphs
Memory Management
Out to the Disk
Part VI: Appendices
A. Review of Java
B. Unified Modeling Language
C. Summation Formulae
D. Further Reading
Index