Customer Reviews


194 Reviews
5 star:
 (165)
4 star:
 (20)
3 star:
 (4)
2 star:
 (4)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 

The most helpful favorable review
The most helpful critical review


92 of 95 people found the following review helpful
5.0 out of 5 stars A powerful update to an already-classic title
Please see my review of the first edition for my general response. My opinion hasn't changed with the second, so I'll focus on what's new in this review.

The second edition was well worth the wait. The number of items are beefed up to 78 from 57. The chapter "Substitutes for C Constructs" is gone, but replaced by more contemporary material on "Generics" and...
Published on May 16, 2008 by Michael Ernest

versus
4 of 4 people found the following review helpful
3.0 out of 5 stars Warning: This is an awkward print version of a famous book
Hello,
This review is not about the book's content. Effective Java 2nd edition is a rather well known and successful book. This review is about this particular print/edition of the book. It has ISBN number 978-1502579898 and Amazon product number (ASIN) 1502579898, which varies from original ISBN 978-0321356680 (ASIN 0321356683) Effective Java (2nd Edition)...
Published 4 months ago by Stan


‹ Previous | 1 220 | Next ›
Most Helpful First | Newest First

92 of 95 people found the following review helpful
5.0 out of 5 stars A powerful update to an already-classic title, May 16, 2008
This review is from: Effective Java (2nd Edition) (Paperback)
Please see my review of the first edition for my general response. My opinion hasn't changed with the second, so I'll focus on what's new in this review.

The second edition was well worth the wait. The number of items are beefed up to 78 from 57. The chapter "Substitutes for C Constructs" is gone, but replaced by more contemporary material on "Generics" and "Enums and Annotations." Some first edition items have been amended to address features new to Java since the first edition was released. Some new items also address concurrency, favoring it over traditional Java threads. As expected, the cases for each item are methodically and persuaisvely made. If you are particularly interested in concurrency, also consider Java Concurrency in Practice.

The item discussions use boldface liberally to highlight key points, sometimes calling attention to arguments in the first edition that have been updated. If you're skimming -- the author in fact doesn't encourage cover-to-cover reading -- these highlights are useful attractors to important material you might otherwise gloss.

It's often helpful to have practices or insights you've earned on your own backed up by a reputable authority. Effective Java certainly helps with that. More importantly, the arguments that support his items are clear, easy to read, and compelling. Anyone proficient with Java would have to go a long way to find fault with them. In fact, it took considerable investigation to determine that one item from the first edition -- "Provide a readResolve method when necessary" -- was not the best advice for some cases. Bloch addresses that issue head-on in this edition, and provides its replacement ("For instance control, prefer enum types to readResolve").

As with the first edition, this one is a necessity for any serious Java developer.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


58 of 63 people found the following review helpful
5.0 out of 5 stars Simply a great book!, June 30, 2008
By 
This review is from: Effective Java (2nd Edition) (Paperback)
Effective Java, Second Edition by Joshua Bloch is certainly the best Java book I have read in a long time. As a disclaimer, I never read the first edition and I am thus unable to compare the two editions. Effective Java, Second Edition is a mostly easy and fun read providing you with many insights and best practices on how to use Java effectively. It certainly is not a book for the beginner just starting out learning Java. For that purpose you may want to take a look at Thinking in Java by Bruce Eckel instead. Nevertheless, Effective Java would serve as an excellent follow-up.

In Effective Java, Joshua Bloch does a great job describing best practices that you as developer will find useful on a daily basis. For example, I really found his description of the builder pattern (Item 2, page 11) quite interesting. Another Item that fascinated me, was Item 15 (page 73) - "Minimize mutability". Both items are part of a broader theme throughout the book that promotes creating code that is as immutable as possible. In that regard, reading the book will enable you to simply write better and safer code. The book also leads the way towards promoting functional programming techniques which will come in quite handily when developing multithreaded applications. Therefore, as a next book I may recommend reading Java Concurrency in Practice by Brian Goetz.

Even for the experienced Java developer, Effective Java contains quite a few little eye openers. I for example was previously unaware of how static factory methods can simplify the creation of parameterized type instances using "type inference". This is described on page 9 (Item 1). In the past I had always used something like this:

List<User> users = new ArrayList<User>();

But by using a static factory method you can do:

List<User> users = Helper.newArrayList();

I thought that this was a pretty nifty example that may help making code a bit cleaner. What I also very much liked about Effective Java was that Joshua points out certain short-comings of the Java language itself and its APIs whenever applicable. For example, page 64 describes the inconsistent behavior between BigDecimal's 'equals' method and its 'compareTo' method, and in item 41 (page 194) Joshua details the shortcomings of the List interface when using Autoboxing.

While the vast majority of the book was very easy to read and to understand, I found that the chapter about bounded wildcards using generics (item 28) was a little difficult to grasp and I wished it were a bit more extensive. On the other side, the provided mnemonic is quite helpful: PECS - Producer-extends, Consumer-super.

Overall, I highly recommend Effective Java, Second Edition which will continue to serve me, and likely you too, as an excellent reference resource.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


93 of 105 people found the following review helpful
4.0 out of 5 stars Good, but not all items are equal, May 12, 2010
This review is from: Effective Java (2nd Edition) (Paperback)
If you want to know the good things about this book, read the other reviews, many of which I agree with. This review just states what makes the book 4 stars for me instead of 5, because none of the other reviews I read pointed them out.

Most of the items in book are very good, a few are great and well worth the price of the book and the time it takes to read it, but some have to be taken with a grain of salt. They probably make sense if you come from the background of working on the Java API team, as the author does, but wouldn't make much sense on any of the projects I have worked on. The problem is that all are presented as universal truths and only through experience can you tell which truly are and which can be ignored.

I also feel that some of the items need to be tempered with just plain practical usefulness. I know that programming a certain way makes the code bullet proof from certain errors by not compiling if those errors are introduced, but if the code is quite a bit harder to understand and those errors are rare, is it really worth it? Also, some of the items are written as if everything you are writing is being published and supported publicly. If code and interfaces are just being used between two teams within the company, or even just on a single team, some of the logic used to describe why items are important don't make as much sense. Again, I just feel that these are something that make complete sense if you are writing on the API team, but not necessarily in every other case.

My final small complaint is that the author tends to be a bit wordy on some of the items, fully explaining out every nuance of the wrong way to do it, which tends to create noise in some explanations that are pretty heavy anyway.

Overall, I would recommend the book, it has already made my programming better. An additional note is that I did not find any errors in the code examples or even the formatting, something that I find rare in programming books.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


20 of 20 people found the following review helpful
5.0 out of 5 stars The Gold Standard for Kindle CompSci, October 9, 2011
Verified Purchase(What's this?)
I'll try to be brief, as the main point of my review is below. Effective Java is a wonderful book. It has well thought out ideas that can serve as food for thought, and they are presented in a concise manner. A must have for serious Java developers who want to expand their coding horizons without compromising their good programming practice.

[This rest of this review refers to the Kindle edition of the book.]

I was so enthusiastic to see how many computer books had been released for the Kindle that I resolved never to buy dead tree editions again. I've stuck with this decision, but have constantly run into the same problem that all you Kindle readers out there keep having with tech books. The formatting is atrocious. Pick any computer or programming volume and you'll be able to find a one star review of the Kindle edition that laments how a perfectly good book has been ruined and a horde of comments calling them out for reviewing only the kindle edition, as if receiving a paper back where the font size would inconsistently shift to 4-point wouldn't elicit a negative review. For anyone, customer or publisher who has decided that the Kindle is simply incompatible with books on programming, this book serves an example that they're utterly wrong.

There are several negative reviews of this book describing the Kindle edition with the same complaints we've all come to know an despise. But if you look closer at them, you'll see comments talking about how the book was fixed, probably because of exposure to the reviews; though it's possible someone in product testing had the idea of actually attempting to read the book on the Kindle. Either way, it's now vastly improved.

The code samples in this book aren't just copy/pasted images of chunks from the print version, each line is separate, and they scale with the rest of the Kindle text. Instead of shrinking if the line is too large for the screen, it wraps around, eliminating the normal readability problem. For whatever reason, each line of code is a single entity for highlighting purposes, which could cause minor problems. Regardless, you can copy the code into a text editor. The book is also excellently hyper-linked. The table of contents can be used to navigate the book. Any time an item is mentioned, the name is a hyperlink that will take you to that item, and citations will take to to a full citation. The index is *not* hyper-linked at all, making it useless, the single remaining vestige of poor formatting.

Now, this is not your typical textbook style programming book. It's broken down into items rather than chapters and subheading, and there are no page number references since the items are numbered consecutively, so there wasn't any editing needed to make references sensible for the Kindle. The only images are a few charts, and they aren't particularly important, most being in an appendix, but those images have the same formatting issues seen in other books, albeit minimal because their shape matches the Kindle's screen.

Tell your friends, tell your favorite publishers, tell those annoying people trying to call you out on reviews about Kindle editions. Tell them about this book when they try to use technical limitations or some other excuse to explain why all the Kindle computer science books look so bad.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


13 of 13 people found the following review helpful
5.0 out of 5 stars it managed to get better, June 11, 2008
By 
This review is from: Effective Java (2nd Edition) (Paperback)
The second edition of "Effective Java" is almost like a completely different book from the first. There were new chapters addressing Java 5 topics such as generics, enums and autoboxing. Existing patterns were rewritten for Java 5/6 - both conceptually and for the code examples. For example, overloading now address varargs. The number of items grew from 57 to 78 as well and the author removed the old ones that are obsolete.

As a reference, chapter one provided a table to quickly find items on Java 5. The appendix provided a cross mapping to find items from the first edition in this copy.

For those new to "Effective Java", it is meant for intermediate to advanced Java developers. It provides best practices, recipes and idioms for working with Java. The author is good about listing both advantages and disadvantages to choose when to apply a tip.

When thinking about my favorite chapter, I have trouble picking just one. I'm torn between the concurrency and enum chapters. The book goes beyond the common "use enums over constants" and goes into things like EnumBitSets.

I learned a lot reading the first edition of this book and learned just as much reading the second. If you have the first edition, but this one anyway. And if you haven't read the first edition, get your hands on the latest copy!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


17 of 20 people found the following review helpful
5.0 out of 5 stars Kindle version has been vastly improved - Top notch!, November 9, 2010
Verified Purchase(What's this?)
This review is from: Effective Java (2nd Edition) (Paperback)
As I revise and post this review of mine (March 25, 2011), I am delighted to report that the quality of the Kindle version that I've sampled, which include scalable code examples, has been vastly improved! Should you be interested in additional details and the background leading up to this vastly improved Kindle version of the printed book ("Effective Java, Second Edition"), please see the helpful and thoughtful comments that various readers have added to this review including, most recently, by the esteemed author (Joshua Block) himself!

I've owned its forerunner ("Effective Java, First Edition") as well and, as always, I maintain that this peerless book is a fantastic compendium of all things Java, which will help deepen your understanding of the Java programming language. It's right up there with "The Pragmatic Programmer: From Journeyman to Master" by Andrew Hunt and David Thomas!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


27 of 33 people found the following review helpful
5.0 out of 5 stars A must read book, May 21, 2008
This review is from: Effective Java (2nd Edition) (Paperback)
If you are not too busy at work it probably worth stop writing code till you finish reading this book.
Seriously.

BTW Don't be tempted to save and buy a cheaper first edition.
The second edition has some very important changes and new information.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


6 of 6 people found the following review helpful
5.0 out of 5 stars Taught this old dog new tricks, August 12, 2008
By 
C. Longo (New York, NY) - See all my reviews
Verified Purchase(What's this?)
This review is from: Effective Java (2nd Edition) (Paperback)
I've been programming Java since 1995 and sometimes think I know everything I need to know about working with the language. "Effective Java" made me realize that there's always much, much more to learn.

This book is packed with incredibly useful information that every single Java developer should know. The best part is that Bloch is not proposing any kind of radical new programming method, he is simply organizing and presenting tried and true Java programming patterns and idioms.

I can't count how many times I've said, "Of course, it is so obvious! Why didn't I think of that?" when I was reading this book. The items presented are things you may know, or half-know, and all it takes is the proper presentation and explanation to completely "ice" things in your mind. The best part is starting a new project after reading "Effective Java" and getting to try out all the good stuff in your own code.

I bought the First Edition seven years ago and am so happy the Second Edition is finally here. It is well worth the wait. If you develop in Java in any capacity -- get this book!
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful
5.0 out of 5 stars A student's perspective: New insights on every page, February 28, 2009
Verified Purchase(What's this?)
This review is from: Effective Java (2nd Edition) (Paperback)
I am thoroughly enjoying this book and learning a lot in the process. The author is responsible for many of the successful APIs in the Java language, such as the Collections framework, so he certainly knows what he is talking about.

I am still a student but I can relate to some of the things he talks about, and see where I have deviated from his suggestions in the past. The author is clear to point out why these things are problems in terms of either code reuse, extensibility, type safety, or some other aspect, so even though it wasn't necessarily an issue in the context of a school project, in the real world it certainly might be.

The author borrows the format from Scott Meyer's Effective C++ series of books, and it works very well in this context. While the chapters are logically organized, they are set up in such a way that you do not need to read from start to finish; you can jump around and read the interesting bits at will, and often items in one section of the book refer to later (or earlier) items.

Finally, I appreciate that the book explains some of the less well known or understood features of recent versions of Java. For instance, I had never heard of the annotation feature added, but he goes on to show a great example of how you can use annotations to build a simple test framework for a class.

Even if you are not yet a software professional, you owe it to yourself to get a jump start by reading this book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful
3.0 out of 5 stars Warning: This is an awkward print version of a famous book, October 27, 2014
By 
Verified Purchase(What's this?)
Hello,
This review is not about the book's content. Effective Java 2nd edition is a rather well known and successful book. This review is about this particular print/edition of the book. It has ISBN number 978-1502579898 and Amazon product number (ASIN) 1502579898, which varies from original ISBN 978-0321356680 (ASIN 0321356683) Effective Java (2nd Edition).

So, what's different about this print and why I didn't like it much:
* Dimensions are noticeably larger: 8.5x11 in vs 7.3x9.1 in
* As a result of the above, each page of the book has approximately 2 inch empty margins. Can you imagine? It looks very awkward when you read the book
* The spine of the book is blank. If you put the book on a bookshelf among others, it is hard to guess what it is
* Cover quality. It seems like the publisher (CreateSpace) prints a low resolution image cover on a glossy paperback

I liked:
* Lower price that Addison-Wesley's print

Other thoughts:
* Paper and print quality is good

If these differences won't bother you, this book is a good buy.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 220 | Next ›
Most Helpful First | Newest First

Details

Effective Java (2nd Edition)
Effective Java (2nd Edition) by Joshua Bloch (Paperback - May 28, 2008)
$54.99 $35.47
In Stock
Add to cart Add to wishlist
Search these reviews only
Send us feedback How can we make Amazon Customer Reviews better for you? Let us know here.