Effective java : Methods and Generics

Objective: This section discusses aspects of method designs: how to treat parameters and return values, how to design method signatures, and how to document methods. This section also tells you how to maximize the benefits and minimize the complications of generics. Key topics: Parameter Validity Defensive Copies Overloading Varargs Empty and Null Returns Optional Returns…

Effective java : Classes

Classes Objective: This section contains guidelines to help you make the best use of powerful elements of Java to design and implement usable, robust, and flexible classes and interfaces. Key topics: Accessibility of Classes and Members Accessor Methods and Public Fields Mutability Composition and Inheritance Inheritance Documentation Interfaces and Abstract Classes Interface Design and Posterity…

Effective Java : Creating and destroying objects

Creating and Destroying Objects Objective: This section concerns when and how to create objects, when and how to avoid creating them, how to destroy them in a timely manner, and how to manage any cleanup actions that must be done before their destruction. Key topics: Static Factory Methods and Constructors Builders and Constructors Singleton Noninstantiability…

Effective Java : General programming

General Programming Objective: This section is devoted to the nuts and bolts of Java. Key topics: Scope of Local Variables For-Each Loops and Traditional For Loops Use of Libraries Float, Double, and Exact Calculations Primitive Types and Boxed Primitives Use of Strings and Other Types String Builder and String Concatenation Interface and Class References Optimization…