The Book Effective Java by Joshua Bloch is about the Java programming language for people who are already familiar with Java in general but are not yet proficient. If you can write java code but want to start becoming a java expert, this book might be for you!
Summary of Effective Java
The book is structured in 11 Chapters containing 78 items. An item is a concept, hint or rule that can be read on its own thus allowing the reader to browse through the book in no particular order. The items contain well thought out example- and counterexample-code as well as an extensive descriptions and explanations. Sometimes the descriptions get a bit wordy but generally they are focused enough to bring the point across without boring the reader.
The items cover the themes creating and destroying objects which introduces the factory as well as singleton pattern and other object management techniques, common methods covering equals, toString and similar, classes and interfaces a general chapter about class design, methods which covers general method design, general programming discussing best practices, exceptions, threads and serialization.
The second edition contains chapters on generics as well as enums and annotations instead of the chapter on substitutes for C constructs that the first edition had. Including generics and enums and removing a chapter on C were both good decisions, so if you get this book I would recommend the second edition.
It should be noted that not all of these Chapters and Items are equally good. Some are important best practices that every programmer should know and follow, others are presented as such but should probably be suggestions instead that apply in some situations but not in others.
Java Book Review: Pros and Cons
|introduces important concepts for beginning/intermediate programmers|
|good reference book|
|less well suited for advanced java programmers|
|too short (about 250 pages in first edition and 350 in second)|
Effective Java is a well written and structured book on the Java programming language aimed at beginning and intermediate java programmers.
For beginning Java programmers who are already familiar with the language syntax but not much more, this book is a must read as it introduces seasoned concepts every Java programmer should know (but sadly, not everyone does).
If you are a CS student or intermediate programmer, Effective Java will probably contain a couple of interesting new ideas and serve well as a reference book, but most parts will only be a refreshment of things you already knew.
So, if you are in one of the groups listed above, check Effective Java out at Amazon.