Java Reference
In-Depth Information
< Day Day Up >
7. Instance Creation and Destruction
This section concerns constructors, pseudoconstructors, instance initialization, and finalization.
7.1. Instance initializers execute before constructor body
Prescription:
If a self-typed instance field causes recursion during construction, ensure that the
recursion terminates.
References:
Puzzle 40
; [JLS 12.5].
7.2. Invoking an overridden method from a constructor causes method
to run before instance is initialized
Prescription:
Never invoke an overridable method from a constructor.
Use lazy initialization to resolve initialization cycles.
References:
Puzzle 51
; [EJ Items 15 and 48].
7.3. Failure to null out references can cause memory leaks
Prescription:
Null out obsolete object references in long-lived objects. Failure to do so results in
memory leaks, more properly known as
unintended object retention
s in garbage-collected
languages, such as Java.
References:
[EJ Item 5].
7.4. Failure to add a private constructor makes a class instantiable
Prescription:
If you want a class to be uninstantiable, add a private constructor.
More generally, always provide at least one constructor; never depend on the default constructor.
References:
[EJ Item 3].
7.5. Finalizers are unpredictable, dangerous, and slow
Prescription:
Avoid finalizers.
References:
[EJ Item 6].
Search WWH ::
Custom Search