Effective Java: Programming Language Guide [Extra Quality]
Presents the most practical, authoritative guidelines available for writing efficient, well-designed programs for the Java platform
Completely updated for Java releases since 2008
Java programming paradigm has evolved significantly in last 5 years and new material covered in this edition is critical to modern Java programming
Effective Java: Programming Language Guide
June 6, 2001-- At Tuesday's "Effective Programming with Java Technology" conference session (TS-2425), Joshua Bloch, senior staff engineer from Sun Microsystems, presented some powerful, but not well known, idioms that should improve the effectiveness and quality of your Java programming. These idioms were taken directly from Bloch's new book, Effective Java Programming Language Guide (Addison-Wesley, 2001).
The 3rd edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots. Many new items have been added, including a chapter devoted to lambdas and streams.
Joshua J. Bloch (born August 28, 1961) is a software engineer and a technology author, formerly employed at Sun Microsystems and Google. He led the design and implementation of numerous Java platform features, including the Java Collections Framework, the java.math package, and the assert mechanism. He is the author of the programming guide Effective Java (2001), which won the 2001 Jolt Award, and is a co-author of two other Java books, Java Puzzlers (2005) and Java Concurrency In Practice (2006).
Bloch has proposed the extension of the Java programming language with two features: Concise Instance Creation Expressions (CICE) (coproposed with Bob Lee and Doug Lea) and Automatic Resource Management (ARM) blocks. The combination of CICE and ARM formed one of the three early proposals for adding support for closures to Java. ARM blocks were added to the language in JDK7.
Note added January, 2022:This document was written for Go'srelease in 2009, and has not been updated significantly since.Although it is a good guide to understand how to use the languageitself, thanks to the stability of the language, it says littleabout the libraries and nothing about significant changes to theGo ecosystem since it was written, such as the build system, testing,modules, and polymorphism.There are no plans to update it, as so much has happened and a largeand growing set of documents, blogs, and books do a fine job ofdescribing modern Go usage.Effective Go continues to be useful, but the reader shouldunderstand it is far from a complete guide.See issue28782 for context.
If you want to spend less time debugging, optimizing, and tuning your code, this example-oriented, down-to-earth guide is full of practical techniques for exploiting the Java programming language. The 68 topics were chosen based on their relevance to effective and efficient programming practices. A special section focusing on performance provides valuable insights into Java performance issues and useful performance improvement techniques. If you want real-world, sound advice on building applications using the Java programming language, this book is essential reading.
Like other programming style guides, the issues covered span not only aesthetic issues offormatting, but other types of conventions or coding standards as well. However, this documentfocuses primarily on the hard-and-fast rules that we follow universally, andavoids giving advice that isn't clearly enforceable (whether by human or tool). 041b061a72