Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
-44% $19.72$19.72
Ships from: Amazon Sold by: CORDER TRADE LLC
$9.95$9.95
Ships from: Amazon Sold by: LuxuryMerchandise (Veteran Owned)
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.
OK
Effective Java (2nd Edition) 2nd Edition
Purchase options and add-ons
- ISBN-100321356683
- ISBN-13978-0321356680
- Edition2nd
- Publication dateMay 28, 2008
- LanguageEnglish
- Dimensions8.5 x 0.83 x 11 inches
- Print length346 pages
Frequently bought together
Similar items that may deliver to you quickly
Editorial Reviews
Review
Raves for the First Edition!
“I sure wish I had this book ten years ago. Some might think that I don’t need any Java books, but I need this one.”
—James Gosling, fellow and vice president, Sun Microsystems, Inc.
“An excellent book, crammed with good advice on using the Java programming language and object-oriented programming in general.”
—Gilad Bracha, coauthor of The Java™ Language Specification, Third Edition
“10/10—anyone aspiring to write good Java code that others will appreciate reading and maintaining should be required to own a copy of this book. This is one of those rare books where the information won’t become obsolete with subsequent releases of the JDK library.”
—Peter Tran, bartender, JavaRanch.com
“The best Java book yet written.... Really great; very readable and eminently useful. I can’t say enough good things about this book. At JavaOne 2001, James Gosling said, ‘Go buy this book!’ I’m glad I did, and I couldn’t agree more.”
—Keith Edwards, senior member of research staff, Computer Science Lab at the Palo Alto Research Center (PARC), and author of Core JINI (Prentice Hall, 2000)
“This is a truly excellent book done by the guy who designed several of the better recent Java platform APIs (including the Collections API).”
—James Clark, technical lead of the XML Working Group during the creation of the XML 1.0 Recommendation, editor of the XPath and XSLT Recommendations
“Great content. Analogous to Scott Meyers’ classic Effective C++. If you know the basics of Java, this has to be your next book.”
—Gary K. Evans, OO mentor and consultant, Evanetics, Inc
“Josh Bloch gives great insight into best practices that really can only be discovered after years of study and experience.”
—Mark Mascolino, software engineer
“This is a superb book. It clearly covers many of the language/platform subtleties and trickery you need to learn to become a real Java master.”
—Victor Wiewiorowski, vice president development and code quality manager, ValueCommerce Co., Tokyo, Japan
“I like books that under-promise in their titles and over-deliver in their contents. This book has 57 items of programming advice that are well chosen. Each item reveals a clear, deep grasp of the language. Each one illustrates in simple, practical terms the limits of programming on intuition alone, or taking the most direct path to a solution without fully understanding what the language offers.”
—Michael Ernest, Inkling Research, Inc.
“I don’t find many programming books that make me want to read every page—this is one of them.”
—Matt Tucker, chief technical officer, Jive Software
“Great how-to resource for the experienced developer.”
—John Zukowski, author of numerous Java technology books
“I picked this book up two weeks ago and can safely say I learned more about the Java language in three days of reading than I did in three months of study! An excellent book and a welcome addition to my Java library.”
—Jane Griscti, I/T advisory specialist
Video Game Review by 1UP.com
About the Author
Joshua Bloch is chief Java architect at Google and a Jolt Award winner. He was previously a distinguished engineer at Sun Microsystems and a senior systems designer at Transarc. Bloch led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. He coauthored Java&; Puzzlers (Addison-Wesley, 2005) and Java&; Concurrency in Practice (Addison-Wesley, 2006).
Excerpt. © Reprinted by permission. All rights reserved.
Preface to the Second Edition
A lot has happened to the Java platform since I wrote the first edition of this book in 2001, and it’s high time for a second edition. The most significant set of changes was the addition of generics, enum types, annotations, autoboxing, and the for-each loop in Java 5. A close second was the addition of the new concurrency library, java.util.concurrent, also released in Java 5. With Gilad Bracha, I had the good fortune to lead the teams that designed the new language features. I also had the good fortune to serve on the team that designed and developed the concurrency library, which was led by Doug Lea.
The other big change in the platform is the widespread adoption of modern Integrated Development Environments (IDEs), such as Eclipse, IntelliJ IDEA, and NetBeans, and of static analysis tools, such as FindBugs. While I have not been involved in these efforts, I’ve benefited from them immensely and learned how they affect the Java development experience.
In 2004, I moved from Sun to Google, but I’ve continued my involvement in the development of the Java platform over the past four years, contributing to the concurrency and collections APIs through the good offices of Google and the Java Community Process. I’ve also had the pleasure of using the Java platform to develop libraries for use within Google. Now I know what it feels like to be a user.
As was the case in 2001 when I wrote the first edition, my primary goal is to share my experience with you so that you can imitate my successes while avoiding my failures. The new material continues to make liberal use of real-world examples from the Java platform libraries.
The first edition succeeded beyond my wildest expectations, and I’ve done my best to stay true to its spirit while covering all of the new material that was required to bring the book up to date. It was inevitable that the book would grow, and grow it did, from fifty-seven items to seventy-eight. Not only did I add twenty-three items, but I thoroughly revised all the original material and retired a few items whose better days had passed. In the Appendix, you can see how the material in this edition relates to the material in the first edition.
In the Preface to the First Edition, I wrote that the Java programming language and its libraries were immensely conducive to quality and productivity, and a joy to work with. The changes in releases 5 and 6 have taken a good thing and made it better. The platform is much bigger now than it was in 2001 and more complex, but once you learn the patterns and idioms for using the new features, they make your programs better and your life easier. I hope this edition captures my continued enthusiasm for the platform and helps make your use of the platform and its new features more effective and enjoyable.
San Jose, California
April 2008
Product details
- Publisher : Addison-Wesley; 2nd edition (May 28, 2008)
- Language : English
- Paperback : 346 pages
- ISBN-10 : 0321356683
- ISBN-13 : 978-0321356680
- Item Weight : 1.43 pounds
- Dimensions : 8.5 x 0.83 x 11 inches
- Best Sellers Rank: #1,102,831 in Books (See Top 100 in Books)
- #74 in Beginner's Guides to Java Programming
- #446 in Object-Oriented Design
- #3,572 in Computer Software (Books)
- 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 Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Highly recommend for both beginners and more advanced programmers.
It should be of no surprise that this book is not for beginners. In fact, I would argue that it’s targeted to advanced Java developers looking to obtain “Expert” status. (“Guru” status come after one reads both the Java and JVM specifications in their entirety and grow a worthy beard). If you’re a curious Java developer looking for some of the more interesting aspects of the language or a Java veteran determined to take your understanding to the next level, Effective Java is the book you need to have.
- This is not a cookbook. You will not find template solutions to regular programming problems here.
- This is not a "fun" book. This is not like the Head First books where they have lots of funny stuff to keep you entertained.
- This is not a book for beginners. If you are just starting to learn programming, this will only leave your mind in a very confused state.
- This is not "just a Java book". Although most of the topics described in this book are tightly related to Java's mechanics and implementation details, it has a lot of great teachings that are language agnostic.
That being said, this book is a very deep analysis on many diverse topics, most of them centered on Java's mechanics, language features and most prominent flaws. You can expect, for example, lost of pages explaining how to correctly implement a serializable class or how to clone an object correctly. But you will not only get answers here. Most topics include a very throughout explanation on the logic behind the solutions and the potential pitfalls and risks of failing to follow the suggestions described and even counter-intuitive problems derived from design flaws in the Java language.
I will admit that many of the topics of the books have no practical use unless you have to implement a low level solution from scratch or you are working on a very important project where a design flaw might cause catastrophic failure. Still, I guarantee that anyone who reads this book will find something useful.
Top reviews from other countries
Das Buch behandelt eigentlich nur die Grundlagen der Sprache und nebenbei einige Patterns, geht dabei aber mehr in die Tiefe als man das von normalen Lehrbüchern gewohnt ist. Daher ist das Buch nichts für Anfänger oder Leute mit nur etwas Java-Erfahrung. Die Texte verwenden teils anspruchsvolles Englisch. Oft schafft es der Autor mit minimalen Code-Beispielen maximale Verwirrung beim Leser zu stiften. Zum Teil musste ich mich (z.B. Kapitel zu Concurrency und Serialization) durchquälen.
Fazit: Im Buch stehen viele nützliche, empfehlenswerte Sachen, die allerdings durch wiederholtes Lesen und eventuell zusätzliches Nachprogrammieren erarbeitet werden müssen.
Eu particularmente indico o livro para quem já tem um bom conhecimento da linguagem e tem um ampla experiência com a plataforma pois as dicas e informações do livro serão melhor entendidas. O autor possui um profundo conhecimento da plataforma e demonstra bons e maus exemplos de programação usando o código fonte do próprio JDK. Isso além de permitir um profundo conhecimento do Java nos permite melhorar o nosso software baseando-se em exemplos claros e fortes.
Outro ponto forte do livro diz respeito a aspectos de segurança. O autor da dicas relevantes para quem deseja publicar uma API de forma flexível e usando técnicas que previnem ou evitam os ataques mais comuns de "hackers" na plataforma Java.
Livro altamente recomendado.