As
the computer revolution progresses, “unsafe” programming has become
one of the major culprits that makes programming expensive.
Two
of these safety issues are
initialization
and
cleanup.
Many C bugs occur when the programmer forgets to initialize a variable. This is
especially true with libraries when users don’t know how to initialize a
library component, or even that they must. Cleanup is a special problem because
it’s easy to forget about an element when you’re done with it,
since it no longer concerns you. Thus, the resources used by that element are
retained and you can easily end up running out of resources (most notably
memory).
C++
introduced the concept of a
constructor,
a special method automatically called when an object is created. Java also
adopted the constructor, and in addition has a garbage collector that
automatically releases memory resources when they’re no longer being
used. This chapter examines the issues of initialization and cleanup and their
support in Java.