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
Blue ribbon 30 day, 100% satisfaction guarantee!
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."…    
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.958
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