Buy new:
-22% $46.87$46.87
Delivery Tuesday, October 1
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Good
$38.62$38.62
Delivery Friday, October 4
Ships from: Amazon Sold by: TextbookAgent
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Effective Java 3rd Edition
Purchase options and add-ons
Since this Jolt-award winning classic was last updated in 2008, the Java programming environment has changed dramatically. Java 7 and Java 8 introduced new features and functions including, forEach() method in Iterable interface, default and static methods in Interfaces, Functional Interfaces and Lambda Expressions, Java Stream API for Bulk Data Operations on Collections, Java Time API, Collection API improvements, Concurrency API improvements, and Java IO improvements.
In this new edition of Effective Java, Bloch explores new design patterns and language idioms that have been introduced since the second edition was released in 2008 shortly after Java SE6, including Lambda, streams, generics and collections, as well as selected Java 9 features.
As in previous editions, each chapter consists of several “items” presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why.
- 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
- ISBN-100134685997
- ISBN-13978-0134685991
- Edition3rd
- PublisherAddison-Wesley Professional
- Publication dateDecember 27, 2017
- LanguageEnglish
- Dimensions7.4 x 0.9 x 9 inches
- Print length416 pages
Customers who bought this item also bought
One advantage of static factory methods is that, unlike constructors, they have names.Highlighted by 757 Kindle readers
A third advantage of static factory methods is that, unlike constructors, they can return an object of any subtype of their return type.Highlighted by 739 Kindle readers
A second shortcoming of static factory methods is that they are hard for programmers to find.Highlighted by 432 Kindle readers
From the Publisher
The #1 Book on Java Programming, Most Recommended by Java Programmers
"The book is supremely readable: the style is concise and clear, and the code examples are short and to the point. As a result, Effective Java is a pleasant volume to read through from beginning to end—learning to refine your coding skills as you go. It is one of the very few books I recommend without reservation to all Java programmers who are past the beginner stage." — Andrew Binstock, Java Magazine
"Joshua Bloch does an amazing job explaining best practices and providing detailed insights into how and when to use the different Java features. Effective Java is a must-read for every professional Java developer." — Thorben Janssen
"I’ve been using Java for almost a year now and this book definitely enhanced my understanding on the language and how to use its features more efficiently." — Lucas Pavesi Da Cruz
Editorial Reviews
About the Author
Product details
- Publisher : Addison-Wesley Professional; 3rd edition (December 27, 2017)
- Language : English
- Paperback : 416 pages
- ISBN-10 : 0134685997
- ISBN-13 : 978-0134685991
- Item Weight : 1.5 pounds
- Dimensions : 7.4 x 0.9 x 9 inches
- Best Sellers Rank: #48,798 in Books (See Top 100 in Books)
- #2 in Java Programming
- #15 in Computer Programming Languages
- #35 in Professional
- Customer Reviews:
About the author

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 holds a B.S. in computer science from Columbia University and a Ph.D. in computer science from Carnegie Mellon University. His 1990 thesis was titled A Practical Approach to Replication of Abstract Data Objects and was nominated for the ACM Distinguished Doctoral Dissertation Award.
Bloch has worked as a Senior Systems Designer at Transarc, and later as a Distinguished Engineer at Sun Microsystems. In June 2004 he left Sun and became Chief Java Architect at Google. On August 3, 2012, Bloch announced that he would be leaving Google.
In December 2004, Java Developer's Journal included Bloch in its list of the "Top 40 Software People in the World".
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.
Bloch is currently a faculty member of the Institute for Software Research at Carnegie Mellon University, where he holds the title "Professor of the Practice". In addition to his research, Bloch teaches coursework in Software Engineering.
Bio from Wikipedia, the free encyclopedia.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonCustomers say
Customers find the book great and a pleasure to read. They appreciate the advanced Java concepts, best practices, and code optimization. Readers describe the writing style as clean, comprehensive, and elegant.
AI-generated from the text of customer reviews
Customers find the book great, a pleasure to read, and an information-packed resource.
"This is an amazing book which contains tons of good practical advice for programmers, but more importantly explains the "why" behind various..." Read more
"Great tips!! Excellent content with complete explanations...." Read more
"This is an amazing book, everyone who works with Java or who hires Java developers knows that this book is a must read...." Read more
"Overall, the book is great and the quality is essentially brand new...." Read more
Customers find the book great for advanced Java concepts and guidelines. They say the author is good at explaining things and provides in-depth concepts for middle and senior level programmers. Readers also appreciate the advice and guidelines on lambda, streams, and other new things since Java 7 and beyond.
"...Java for almost a year now and this book definitely enhanced my understanding on the language and how to use its features more efficiently...." Read more
"This is an amazing book which contains tons of good practical advice for programmers, but more importantly explains the "why" behind various..." Read more
"Great tips!! Excellent content with complete explanations...." Read more
"...There are lots of cross references in almost every chapter to other advices, so use color stickers to mark chapters and find specific advice fast." Read more
Customers find the writing style clean, comprehensive, and elegant. They say the author knows his stuff.
"...The writing is clean and comprehensive. I didn’t feel lost on most topics. I was able to follow along pretty consistently...." Read more
"...Great examples and written in the classic opinionated programmer style. Overall, his positions are well argued and concise." Read more
"Well-written and easy to understand" Read more
"Written very well, the author knows his stuff..." Read more
Reviews with images
-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The writing is clean and comprehensive. I didn’t feel lost on most topics. I was able to follow along pretty consistently. The ones I did struggle with, I just re-read some parts of the passages and looked up some articles that were a little more introductory to what I was reading.
If anyone is wondering how this book fairs on an e-reader, I read this all through a Kindle and I didn’t see any issues with the examples or text.
Finally, if I had to make just one request, I’d say that a few more examples of bad practices vs the good ones would be awesome just to highlight the issues that a passage addresses.
Amazing book nonetheless!
The book also lets you seen behind the scenes of Java programming in a way you possibly never have before, because Joshua Block is one of the developers behind Java itself, and all the main Oracle supported libraries. As such he can tell you that certain implementations in the standard Java libraries actually violate various best practices (either by accident or because those best practices hadn't emerged at the time of development). Almost always he will note that the problem cannot be fixed due to backward compatibility and has consequences to this day. Very few textbooks actually let you see inside details like this.
No other book I've read gives this kind of insight. And it's not even a hard read.
Sadly, some marketing genius at Amazon decided to enable 'RENT' option on this book by default! Bravo, sir (or madam) - you justified your ridiculous salary.
If you are reading this please make sure you BUY the actual copy of this book and as a consumer you should search for the best deal available (And of course it's not that rent price that Amazon marketing department is teasing you with).
For example:
- Some of the text throughout the book is printed either very heavy (with ink) or very light cause some distortion to the text. It is still readable, just slightly messy.
- Around the middle of the book, one of the pages must have been folded over during the cutting of the book as it left basically a protruding "ear' that I have to leave folded over otherwise it sticks out of the pages. It is somewhat small (about a square inch) so it is not very intrusive.
- There are multiple spelling errors throughout the book and one (major one: "Jave" instead of "Java") on the back cover. This may not be a printing error, but I lumped it in here anyway.
No big deal, but I felt it deserved 4 instead of the full 5 stars.
1) Try with resources and AutoCloseable. This is an important edition to a Java dev's toolkit since Java 7 and it reduces the possibility of resource allocation and exception handling errors.
2) Stream, and lambdas: Bloch talks about best practices for the most important additions to Java since generics, including, interestingly enough, avoiding using Streams *too much*.
3) Optional and static methods in interfaces. Bloch asks developers to consider usage of Optional carefully for performance reasons.
Oddly enough, he doesn't discuss Java 9 modules that much, but personally I don't mind as I have issues with the way they were implemented.
Some advices are simply a common sense or general knowledge to experienced programmers, some might seem obvious. But if you're like me, and sometimes need an approval from an expert or community to consider some practises or your own discoveries valid and "right", the book definitely solidify your confidence.
There are lots of cross references in almost every chapter to other advices, so use color stickers to mark chapters and find specific advice fast.





