Reviews

Effective Java: Third Edition by Joshua Bloch

teodorapenoiu's review

Go to review page

3.0

I'm gonna start that saying that if you're a beginner, this isn't the place to start learning.

Ok, now on to the review. I found a lot of the stuff the author said was really useful and sth I've actually had to implement while coding (without know it's a standard), but that doesn't mean everything was useful and that's fine. I just wish this did a better job keeping my attention.

sir_earle's review against another edition

Go to review page

informative medium-paced

4.0

Although this book spent more time talking about writing shared packages than is relevant to me, I found the book really informative nonetheless. The great thing about the structure of the book is that if a certain section is irrelevant, skipping it brings little consequence.  

mattj256's review

Go to review page

5.0

This is an advanced book, for those who already know the Java language and want to be familiar with best practices. I really appreciate the author's Talmudic knowledge of the intricacies of the Java platform, combined with his very precise use of language. In the acknowledgements section Bloch mentions 11 people who reviewed every chapter (including his wife) and another 11 who reviewed parts of the book. That seems like a lot of people to me!

I got a strong sense that each word and phrase was only allowed to remain in the book after careful review and reflection. While the author has clear opinions, he is careful to point out the justification for each rule as well as edge cases and counterexamples. I really appreciate his pragmatism: the point is to write programs that will have good security, maintainability, performance, and other attributes, not to blindly follow rules.

I also appreciate his occasional references to 1960s popular culture and occasional humor. Some of the sections (especially generics and streams) can be very dense and technical, and the humor helps to make it more fun and digestible.

jakemcc's review

Go to review page

5.0

Pretty great book. A lot of good advice in here for writing Java programs and some that is applicable to other languages.

I know I've also read an early edition of this book and still enjoyed rereading. I took a five year detour and almost entirely wrote Clojure so it was nice to read this and get a feel for some of the new Java 8+ features.

onurkaracali's review

Go to review page

5.0

Better to re-read regularly, with great focus.

moormaan's review against another edition

Go to review page

5.0

An essential read for an aspiring Java developer and a painstaking reminder of all the leaky abstractions out there in the most used programming language in the world.

I was lucky to be refreshing my knowledge of, and starting to use Kotlin as I was reading this - it made me realize how much Kotlin designers had all these lessons I their minds as they were gifting the world with their creation.

lucapette's review

Go to review page

5.0

Usual Joshua Bloch quality: great writing style, well present content, clear tone.

Very minor nitpick: there are a lot of “simply” in the book and that always gets in my nerves.

lubostar's review

Go to review page

5.0

Nepoznam nikoho, kto by si tuto knihu precital a nepacila by sa mu. Skor naopak. Mozno by som dokonca tuto knihu prirovnal ku crossfitu alebo k veganstvu. Lebo mam niekedy pocit, ze kazdy, kto tuto knihu precital, tak ma potrebu s touto skutocnostou oboznamovat ostatnych pri kazdej moznej prilezitosti, aj ked to nikoho nezaujima. A ja prave robim to iste. Lebo ta kniha je fakt super :)

Kniha obsahuje 90 detailne rozpracovanych a velmi praktickych rad do zivota kazdeho Java programatora. Pokryte su temy od uplnych zakladov ako naming conventions az po chutovky ako generics, concurrency alebo serialization. Autor ale nezachadza do prilisnych detailov, takze to nie je zbytocne unavne citanie. Zato ale vzdy, ked to je mozne, tak poskytuje konkretne navody a idiomy vo forme snippetov kodu.

Nenasiel som nic, co by sa mi nepacilo.

fingolfintek's review against another edition

Go to review page

3.0

Well, I've been staring at the screen and trying to rate this book for at least 20 minutes, all the while changing my mind every other minute or so. Writing a review for it is making me equally conflicted but at least in the review I'm not limited to only two options (3 or 4 stars, if anyone's wondering).

First thing to say is that Joshua Bloch is a competent enough author - a bit dry but always to the point, clear, precise and thorough. And he really knows his Java - so much so that I regret not having read this book (well, the previous edition at least) some 10 years ago when I was just starting out - it's definitely more useful to beginners and I could have learned a ton!

The items themselves present the reader with sound advice but the choice of the items is what I take issue with:
* some items read like they were written ~15 years ago for C++ folks moving to Java (enums and bitmaps, native code warnings)
* others read like they were written to highlight old anti-patterns that probably very few devs use in this day and age (finalizers, clone, Serializables, wait/notify, yield...)
* a few have disproportionate amount of space devoted to them given their importance (see previous point and add to it toString, hashCode & equals and probably a few others)
* lots of them (by author's own admission) are more applicable of you're writing a library or framework intended for wide audiences/public use and seem needlessly defensive

Summed up, the criticism amounts to this - while all the items included within are valid, the book would have had more to offer and reader to gain from cutting some of them short (or throwing them out completely) and replacing them with more practically useful items. What about I/O? Don't tell me there's nothing to say. And where are CompletableFutures, asynchronous and non-blocking programming? More from java.util.concurrency and Java's standard library in general?

Or maybe I'm just a splendid curmudgeon in the making...

henryarmitage's review

Go to review page

5.0

The indispensable reference for the professional Java developer.
This is the 3rd edition, updated for JDK 7-9.
There's a new chapter on Lambdas and streams, plus lots of little updates to many of the other topics base on changes to the Java language and libraries.