Proper Java programming practices as mentioned in Effective Java by Joshua Bloch