Join Amazon Prime and ship Two-Day for free and Overnight for $3.99. Already a member? Sign in.
Effective Java Programming Language Guide and over 150,000 other books are available for Amazon Kindle – Amazon’s new wireless reading device. Learn more

 

or
Sign in to turn on 1-Click ordering.
 
   
More Buying Choices
63 used & new from $12.72

Have one to sell? Sell yours here
 
   
Tell a Friend
Effective Java(TM) Programming Language Guide (Java Series)
 
See larger image
 
Start reading Effective Java(TM) Programming Language Guide (Java Series) on your Kindle in under a minute.

Don’t have a Kindle? Get yours here.
 
  

Effective Java(TM) Programming Language Guide (Java Series) (Paperback)

by Joshua Bloch (Author)
4.8 out of 5 stars  (120 customer reviews)

List Price: $49.99
Price: $34.43 & this item ships for FREE with Super Saver Shipping. Details
You Save: $15.56 (31%)
Special Offers Available
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Friday, August 22? Choose One-Day Shipping at checkout. See details

63 used & new available from $12.72
Also Available in: List Price: Our Price: Other Offers:
Kindle Edition (Kindle Book) $30.99
 
   

Special Offers and Product Promotions

  • This title is eligible for Amazon Fall Textbook promotions. Get unlimited free Two-Day Shipping for three months with a free trial of Amazon Prime. Add $100 worth of eligible textbooks to your cart to qualify. Sign up at checkout. New members only. Here's how (restrictions apply)

Better Together

Buy this book with Java Concurrency in Practice by Brian Goetz today!

Effective Java(TM) Programming Language Guide (Java Series) Java Concurrency in Practice
Buy Together Today: $69.07

Customers Who Bought This Item Also Bought

Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases

Java(TM) Puzzlers: Traps, Pitfalls, and Corner Cases by Joshua Bloch

4.6 out of 5 stars (27)  $28.07
Head First Design Patterns (Head First)

Head First Design Patterns (Head First) by Elisabeth Freeman

4.6 out of 5 stars (243)  $29.67
Thinking in Java (4th Edition)

Thinking in Java (4th Edition) by Bruce Eckel

4.2 out of 5 stars (298)  $36.42
Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)

Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series) by Erich Gamma

4.5 out of 5 stars (249)  $41.20
Head First Java, 2nd Edition

Head First Java, 2nd Edition by Kathy Sierra

4.5 out of 5 stars (208)  $29.67
Explore similar items : Books (100)

Editorial Reviews

Amazon.com
Written for the working Java developer, Joshua Bloch's Effective Java Programming Language Guide provides a truly useful set of over 50 best practices and tips for writing better Java code. With plenty of advice from an indisputable expert in the field, this title is sure to be an indispensable resource for anyone who wants to get more out of their code.

As a veteran developer at Sun, the author shares his considerable insight into the design choices made over the years in Sun's own Java libraries (which the author acknowledges haven't always been perfect). Based on his experience working with Sun's best minds, the author provides a compilation of 57 tips for better Java code organized by category. Many of these ideas will let you write more robust classes that better cooperate with built-in Java APIs. Many of the tips make use of software patterns and demonstrate an up-to-the-minute sense of what works best in today's design. Each tip is clearly introduced and explained with code snippets used to demonstrate each programming principle.

Early sections on creating and destroying objects show you ways to make better use of resources, including how to avoid duplicate objects. Next comes an absolutely indispensable guide to implementing "required" methods for custom classes. This material will help you write new classes that cooperate with old ones (with advice on implementing essential requirements like the equals() and hashCode() methods).

The author has a lot to say about class design, whether using inheritance or composition. Tips on designing methods show you how to create understandable, maintainable, and robust classes that can be easily reused by others on your team. Sections on mapping C code (like structures, unions, and enumerated types) onto Java will help C programmers bring their existing skills to Sun's new language. Later sections delve into some general programming tips, like using exceptions effectively. The book closes with advice on using threads and synchronization techniques, plus some worthwhile advice on object serialization.

Whatever your level of Java knowledge, this title can make you a more effective programmer. Wisely written, yet never pompous or doctrinaire, the author has succeeded in packaging some really valuable nuggets of advice into a concise and very accessible guidebook that arguably deserves a place on most any developer's bookshelf. --Richard Dragan

Topics covered:

  • Best practices and tips for Java
  • Creating and destroying objects (static factory methods, singletons, avoiding duplicate objects and finalizers)
  • Required methods for custom classes (overriding equals(), hashCode(), toString(), clone(), and compareTo() properly)
  • Hints for class and interface design (minimizing class and member accessibility, immutability, composition versus inheritance, interfaces versus abstract classes, preventing subclassing, static versus nonstatic classes)
  • C constructs in Java (structures, unions, enumerated types, and function pointers in Java)
  • Tips for designing methods (parameter validation, defensive copies, method signatures, method overloading, zero-length arrays, hints for Javadoc comments)
  • General programming advice (local variable scope, using Java API libraries, avoiding float and double for exact comparisons, when to avoid strings, string concatenation, interfaces and reflection, avoid native methods, optimizing hints, naming conventions)
  • Programming with exceptions (checked versus run-time exceptions, standard exceptions, documenting exceptions, failure-capture information, failure atomicity)
  • Threading and multitasking (synchronization and scheduling hints, thread safety, avoiding thread groups)
  • Serialization (when to implement Serializable, the readObject(), and readResolve() methods)


Book Info
(Pearson Education) Working solutions to programming challenges faced by Java developers on a daily basis, reve