Developing Java Applications
Read the Relevant Specifications
Example 1: Reflection
Example 2: Reflection Revisited
Example 3: Serialization
Example 4: Finalizers
Never Use Deprecated Unsafe Methods
Minimize the Use of Finalizers
Don’t Depend on Thread Priorities
Don’t Use Internal sun.* or jrockit.* Classes
Override java.Object.hashCode for User Defined Classes When Using Hashing
Do Careful Thread Synchronization
Expect Only Standard System Properties
Minimizing the Number of Java Processes
Avoid Calling System.gc()
Allocate Objects Carefully
Be Careful When Using Signals in Native Code (JNI)
Use Signal Chaining
Don't use SIGUSR1 and SIGUSR2
Be Prepared to Receive Signals (Check EINTR)
Do You Really Need To Specify -Xrs?