Effective Java : Serialization

Serialization Objective: This section explains the dangers of serialization and how to minimize them. Object serialization is Java’s useful framework for encoding objects as byte streams (serializing) and reconstructing objects from their encodings (deserializing). Once objects have been serialized, they can be sent from one virtual machine to another or stored on disk for later deserialization. Key topics:…

Effective Java : Concurrency

Concurrency Objective: Threads enable multiple tasks to proceed concurrently. Concurrent programming is more difficult than single-threaded one because more things can go wrong, and it is hard to reproduce failures. But concurrency is a must in modern programming to utilize multicore processors! This section provides advice to help you write clear, correct, well-documented concurrent programs. Key…

Lambdas and Streams : Effective java

Lambdas and Streams Objective: In Java 8, functional interfaces, lambdas, method references, along with streams API were added to help software engineers create function objects and process sequences of data elements more easily. This section explains best practices of how to utilize those facilities. Key topics: Lambdas and Anonymous Classes Lambdas and Method References Lambdas and Functional Interfaces Streams Streams…

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…

Design patterns

Design that is more automated and requires less maintenance is the standard. Getters and setters: Setters can be used for validation and constraining the value to be set to a particular range. Getters can be used for returning the default value if the variable is not set yet or for lazy instantiation. Can’t make objects…

:)