On This Page
Description
Are you looking for a deeper understanding of the Java™ programming language so that you can write code that is clearer, more correct, more robust, and more reusable? Look no further! Effective Java™, 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 highly anticipated new edition of the classic, Jolt Award-winning work has been thoroughly updated to show more 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 explanations for each item illuminate what to do, what not to do, and why. Highlights include: New coverage of generics, enums, annotations, autoboxing, the for-each loop, varargs, concurrency utilities, and much more Updated techniques and best practices on classic topics, including objects, classes, libraries, methods, and serialization How to avoid the traps and pitfalls of commonly misunderstood subtleties of the language Focus on the language and its most fundamental libraries: java.lang, java.util, and, to a lesser extent, java.util.concurrent and java.io Simply put, Effective Java™, Second Edition, presents the most practical, authoritative guidelines available for writing efficient, well-designed programs. show lessTags
Recommendations
Member Recommendations
Member Reviews
This book not only provides gems of advice for core Java programming but also for programming in general, especially if your code will be provided as an API to other programmers and if it is going to live for more than a few months.
Another interesting aspect of the book is that the more I contemplate upon it, the more it resembles like advocacy for functional programming. At least some parts really made me think like "hmm, that would be considered natural in Scala" (insert your favorite functional programming language here, even if it's not purely functional in the strictest academic sense). The book is also helpful if you've spent long time in high level languages such as Python or Lisp before coming to Java, and are curious about how show more you can get an approximation of some of their good parts such as optional named arguments.
The foreword of Guy L. Steele, Jr. says it all: after learning the vocabulary and grammar of a language you need to master the pragmatics of it rooted in real life cases so that your communication with other language speakers will smooth flowly. Bloch's book helps you with that effectively and I think every programming language deserves at least one author of Bloch's calibre. show less
Another interesting aspect of the book is that the more I contemplate upon it, the more it resembles like advocacy for functional programming. At least some parts really made me think like "hmm, that would be considered natural in Scala" (insert your favorite functional programming language here, even if it's not purely functional in the strictest academic sense). The book is also helpful if you've spent long time in high level languages such as Python or Lisp before coming to Java, and are curious about how show more you can get an approximation of some of their good parts such as optional named arguments.
The foreword of Guy L. Steele, Jr. says it all: after learning the vocabulary and grammar of a language you need to master the pragmatics of it rooted in real life cases so that your communication with other language speakers will smooth flowly. Bloch's book helps you with that effectively and I think every programming language deserves at least one author of Bloch's calibre. show less
If you program in java, you *have* to read this book. Lots of nuts and bolts help understanding and effectively using the language by a guy who is a master at presenting the often complex material. Everyone should have this book, far more useful day-to-day than any of the trendy patterns books.
Joshua Bloch, once a developer for Sun (and in fact one of the primary authors of the Java Collections API), guides you through a series of enlightening "Dos and Don'ts" about the Java programming language. The book is broken up into short items, with each item containing evidence, examples, and a good conversational explanation of the item. It's a great deal thinner than its C-language counterpart, but don't let that dissuade you from the purchase; Bloch will save you a ton of time reading through the JLS, or learning these lessons the hard way. I keep a copy in my work desk for reference, and even if you've been programming Java for years, it's likely you'll learn something.
This book is like Effective C by Scott Meyers, but for Java.
The book is formatted at a series of tips, broken into categories such as concurrency, designing methods, handling exceptions, and implementing C constructs. I found the book extremely useful. I do not have much Java experience, and I had to write some code in Java. This book helped me write code that is, hopefully, idiomatically and well as syntactically Java. (It also helped me relearn how to actually program in Java, but, shhh, that's a secret.)
The book is formatted at a series of tips, broken into categories such as concurrency, designing methods, handling exceptions, and implementing C constructs. I found the book extremely useful. I do not have much Java experience, and I had to write some code in Java. This book helped me write code that is, hopefully, idiomatically and well as syntactically Java. (It also helped me relearn how to actually program in Java, but, shhh, that's a secret.)
This book alone made me a better Java programmer. Period.
Pros:
* It's presented by items, so no need to read it sequentially;
* Contains a glimpse on the intricacies of the Java language;
* Contains code examples on 'why do this, but not that';
And more importantly,
* You'll probably consider things that never even crossed your mind (or at least, not mine).
Cons
* It's geared towards Java 2 and... Java 7 has just came out. In my eyes, it doesn't make it less valuable though.
Even though I just finished the first edition, I'm seriously considering buying the last one. I liked THAT much.
Pros:
* It's presented by items, so no need to read it sequentially;
* Contains a glimpse on the intricacies of the Java language;
* Contains code examples on 'why do this, but not that';
And more importantly,
* You'll probably consider things that never even crossed your mind (or at least, not mine).
Cons
* It's geared towards Java 2 and... Java 7 has just came out. In my eyes, it doesn't make it less valuable though.
Even though I just finished the first edition, I'm seriously considering buying the last one. I liked THAT much.
This book deserved the full five star when it came out. Lost some of its value, cause part of Joshua Bloch suggestions have been included in the standard Java 5 language, and in some IDE feautures as well, so the content is partially outdated.
Best thing about the book is that you can read it piece by piece and still find something useful and interesting.
Best thing about the book is that you can read it piece by piece and still find something useful and interesting.
This one of the most useful practical programming books that I own. It gives many guidelines on how to write good Java code, and discusses the whys and the why-nots.
Members
- Recently Added By
Lists
Books Read in 2017
4,248 works; 130 members
Author Information

2 Works 1,412 Members
Joshua Bloch is a professor at Carnegie Mellon University. He was formerly the chief Java architect at Google, a distinguished engineer at Sun Microsystems, and a senior systems designer at Transarc. He led the design and implementation of numerous Java Platform features, including the JDK 5.0 language enhancements and the Java Collections show more Framework. He holds a Ph.D. in computer science from Carnegie Mellon University and a B.S. in computer science from Columbia University. show less
Awards and Honors
Awards
Series
Common Knowledge
- Canonical title
- Effective Java
Classifications
- Genres
- Technology, Nonfiction, General Nonfiction
- DDC/MDS
- 005.71262 — Computer science, information & general works Computer science, knowledge & systems Software development, software, data, security Data in computer systems Communication Developing for specific operating systems and interfaces Personal computers
- LCC
- QA76.73 .J38 .B57 — Science Mathematics Mathematics Instruments and machines Calculating machines Electronic computers. Computer science
- BISAC
Statistics
- Members
- 1,210
- Popularity
- 20,353
- Reviews
- 11
- Rating
- (4.38)
- Languages
- 9 — Chinese, Czech, English, French, German, Hungarian, Italian, Japanese, Portuguese
- Media
- Paper, Ebook
- ISBNs
- 29
- UPCs
- 3
- ASINs
- 6






















































