Skip to content

Effective Java

Spend $50 to get a free DVD!

ISBN-10: 0321356683

ISBN-13: 9780321356680

Edition: 2nd 2008

Authors: Joshua Bloch

List price: $54.99
Shipping box This item qualifies for FREE shipping.
Blue ribbon 30 day, 100% satisfaction guarantee!
Buy eBooks
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!


Raves for the First Edition!" "I sure wish I had this book ten years ago. Some might think that I don't need any Java books, but I need this one." "-James Gosling, fellow and vice president, Sun Microsystems, Inc. ""An excellent book, crammed with good advice on using the Java programming language and object-oriented programming in general."" -Gilad Bracha, coauthor of "The Java(TM) Language Specification, Third Edition" ""10/10-anyone aspiring to write good Java code that others will appreciate reading and maintaining should be required to own a copy of this book. This is one of those rare books where the information won't become obsolete with subsequent releases of the JDK library." "-Peter Tran, bartender, ""The best Java book yet written.... Really great; very readable and eminently useful. I can't say enough good things about this book. At JavaOne 2001, James Gosling said, 'Go buy this book!' I'm glad I did, and I couldn't agree more."" -Keith Edwards, senior member of research staff, Computer Science Lab at the Palo Alto Research Center (PARC), and author of "Core JINI "(Prentice Hall, 2000) ""This is a truly excellent book done by the guy who designed several of the better recent Java platform APIs (including the Collections API)."" -James Clark, technical lead of the XML Working Group during the creation of the XML 1.0 Recommendation, editor of the XPath and XSLT Recommendations ""Great content. Analogous to Scott Meyers' classic" Effective C++. "If you know the basics of Java, this has to be your next book."" -Gary K. Evans, OO mentor and consultant, Evanetics, Inc ""Josh Bloch gives great insight into best practices that really can only be discoveredafter years of study and experience."" -Mark Mascolino, software engineer ""This is a superb book. It clearly covers many of the language/platform subtleties and trickery you need to learn to become a real Java master."" -Victor Wiewiorowski, vice president development and code quality manager, ValueCommerce Co., Tokyo, Japan" "I like books that under-promise in their titles and over-deliver in their contents. This book has 57 items of programming advice that are well chosen. Each item reveals a clear, deep grasp of the language. Each one illustrates in simple, practical terms the limits of programming on intuition alone, or taking the most direct path to a solution without fully understanding what the language offers." "-Michael Ernest, Inkling Research, Inc. ""I don't find many programming books that make me want to read every page-this is one of them."" -Matt Tucker, chief technical officer, Jive Software ""Great how-to resource for the experienced developer."" -John Zukowski, author of numerous Java technology books ""I picked this book up two weeks ago and can safely say I learned more about the Java language in three days of reading than I did in three months of study! An excellent book and a welcome addition to my Java library."" -Jane Griscti, I/T advisory specialist Are you looking for a deeper understanding of the Java(TM) programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! ""Effective Java(TM), Second Edition, "" brings together seventy-eight indispensable programmer's rules of thumb: working, best-practice solutions for the programming challenges you encounter every day. This highlyanticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to cover Java SE 5 and Java SE 6 features introduced since the first edition. Bloch explores new design patterns and language idioms, showing you how to make the most of features ranging from generics to enums, annotations to autoboxing. Each chapter in the book consists of several "items" presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and outstanding code examples. The comprehensive descriptions and expl
Customers also bought

Book details

List price: $54.99
Edition: 2nd
Copyright year: 2008
Publisher: Prentice Hall PTR
Publication date: 5/8/2008
Binding: Paperback
Pages: 384
Size: 7.25" wide x 9.00" long x 1.00" tall
Weight: 1.804
Language: English

Creating and Destroying Objects
Consider static factory methods instead of constructors
Consider a builder when faced with many constructorparameters
Enforce the singleton property with a private constructor
Enforce noninstantiability with a private constructor
Avoid creating unnecessary objects
Eliminate obsolete object references
Avoid finalizers
Methods Common to All Objects
Obey the general contract when overriding equals
Always override hashCode when you override equals
Always override toString
Override clone judiciously
Consider implementing Comparable
Classes and Interfaces
Minimize the accessibility of classes and members
In public classes, use accessor methods, not public fields
Minimize mutability
Favor composition over inheritance
Design and document for inheritance or else prohibit it
Prefer interfaces to abstract classes
Use interfaces only to define types
Prefer class hierarchies to tagged classes
Use function objects to represent strategies
Favor static member classes over nonstatic
Don't use raw types in new code
Eliminate unchecked warnings
Prefer lists to arrays
Favor generic types
Favor generic methods
Use bounded wildcards to increase API flexibility
Consider typesafe heterogeneous containers
Enums and Annotations
Use enums instead of int constants
Use instance fields instead of ordinals
Use EnumSet instead of bit fields
Use EnumMap instead of ordinal indexing
Emulate extensible enums with interfaces
Prefer annotations to naming patterns
Consistently use the Override annotation
Use marker interfaces to define types
Check parameters for validity
Make defensive copies when needed
Design method signatures carefully
Use overloading judiciously
Use varargs judiciously
Return empty arrays or collections, not nulls
Write doc comments for all exposed API elements
General Programming
Minimize the scope of local variables
Prefer for-each loops to traditional for loops
Know and use the libraries
Avoid float and double if exact answers are required
Prefer primitive type