Editorial Reviews. portal7.info Review. Written for the working Java developer, Joshua Effective Java Programming Language Guide - Kindle edition by Joshua Bloch. Download it once and read it on your Kindle device, PC, phones or. The Definitive Guide to Java Platform Best Practices–Updated for Java 7, 8, and 9 Java has changed dramatically since the previous edition of Effective Java was published shortly after. by Joshua Bloch thoroughly updated to take full advantage of the latest language and library features. 9 General Programming. Effective Java™: Programming Language Guide. 2 reviews. by Joshua Bloch. Publisher: Prentice Hall. Release Date: June ISBN: View table.
|Language:||English, Spanish, Indonesian|
|Genre:||Politics & Laws|
|ePub File Size:||16.43 MB|
|PDF File Size:||12.29 MB|
|Distribution:||Free* [*Sign up for free]|
Effective Java™ Programming Language Guide. Joshua Bloch. Effective Java,™ Second Edition. Stephanie Bodoff, Dale Green, Kim Haase, Eric Jendrock. Effective Java: Programming Language Guide. Joshua Bloch. Publisher: Addison Wesley. First Edition June 01, ISBN: , pages. Are you. The Java programming language, for example, is object-oriented with single inheritance and Joshua. Bloch has spent years extending, implementing, and using the Java programming language at guide is all the more critical. With this .
Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. The third edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots.
A new edition of this title is available, ISBN Get A Copy. Paperback , pages. Published June 15th by Addison-Wesley first published June 5th More Details Original Title.
Other Editions Friend Reviews. To see what your friends thought of this book, please sign up.
I have found this book in the depths of my library, and I am wondering whether this edition is still relevant? Gaston Jorquera Or wait for the 3rd edition http: Lists with This Book. Community Reviews. Showing Rating details. Sort order. Mar 14, Eric rated it it was amazing Shelves: This is the single best book I have seen or read about Java to date. Bloch, who has been involved in the development of the latest versions of the Java language and specification, does not teach how to write Java code; he teaches how to write GOOD Java code.
But not only that, it is fairly easy to read and rather interesting. I had a few second thoughts after writing the review above, so I thought I'd better add This is the single best book I have seen or read about Java to date. I had a few second thoughts after writing the review above, so I thought I'd better add two things.
First, make sure you get the most recent edition of the book as there have been substantial changes. Second, this is not a beginner's book - you won't find "HelloWorld" here.
Learn the Java basics first. View all 4 comments. Feb 28, Andrew rated it liked it.
This is not a book for beginners, but rather a book on general software design concepts, particularly with respect to Java itself. The book is organized into a few dozen "items", most of which follow this format: You should probably follow it.
The good examples are good, and there's a lot to learn about writing software in general. He starts off with a solid defense of static factory methods Item 1 , offers patterns for successfully avoiding multithreading issues Item 48 and serialization issues Item 54 , and even has sound general programming advice Item Some of the suggestions seem to hinge on the assumption that the code you write is well-thought-out, such as Item On the other hand, how much code duplication occurs because a module's fields are private when they could be protected, or because certain parts of its implementation aren't exposed that should otherwise be reused?
When faced with a compromise between writing extra code and entertaining the possibility of a client using your code in a way differently than you intended, Bloch always chooses writing extra code. The classic "favor composition over inheritance" Item 14 is a great example of this, with his InstrumentedSet example marred by an unruly horde of "forwarding methods".
Bloch never questions the language itself, but instead sometimes uses its design "decisions" as justification for suggestions. From Item 35, "Prefer interfaces to reflection", after providing a code example of using reflection emphasis added: You can see two disadvantages of reflection in the example. First, the example is capable of generating three run-time errors, all of which would have been compile-time errors if reflective instantiation were not used.
Second, it takes twenty lines of tedious code to generate an instance of the class from its name, whereas a constructor invocation would fit neatly on a single line. I understand that this book is about how to code in Java , but using the inconvenience of writing meta-code in Java as a reason to not write it especially after how willing he is to add plenty of forwarding methods , instead of commenting on the language's design or pointing out in how many languages you could write the example in one line, is inexcusable.
Bloch seems endlessly concerned with a potential "attacker" of your code Item 3: I do find it amusing, however, given the existence of Java's reflection APIif someone wanted to "maliciously" misuse your API, the language won't stop them, but will just make it more difficult.
I hope you like it. But use it exactly how I tell you to use it, because fuck you, it's my code. I'll decide who's the goddamn grown-up around here. But the context is still Java, with all of its strengths and weaknesses. For better or worse, Bloch is writing about Java as it is, and not as it could be, and his assumptions about the reader's quality of judgment make you wonder how much code duplication he has inadvertently caused.
This is essential when you want to write highly maintainable, efficient modern Java code. The second edition puts a lot of emphasis on all the new language features that came with Java 5 Effective Java is THE BOOK you want to read first when you start writing Java code professionally for a living.
The second edition puts a lot of emphasis on all the new language features that came with Java 5 and especially how they made past best practises obsolete. This is exactly what you don't get by reading general Java programming books or tips online - most of which is old and just not the best implementation possible.
Implementation issues are treated from the perspective of API maintainability. This aims for very high quality standards e. We are all writing APIs of some sort - in the extreme case just for ourselves. This book can safe you a lot of future headaches! Mar 21, Rafi rated it really liked it.
I read this book as a recommended reading for the Java developers at Google. I found many "items" described in this book quite useful in real-life coding.
Sometimes the author has gone a little too far to describe a single item, but overall the book is very well written. By far the best programming book I have ever read to date. View 1 comment. I started reading it to improve my knowledge of java and it was exactly what I found. The books is separated in 78 items with begin and end, so reading an item who is 2 to 3 pages long, you end with a new approach to something. It is really an enjoyable experience: Sep 19, Michael rated it it was amazing Shelves: If you have not read this then you do not know how to program Java.
The introduction and middle of the book are awesome, with incredible new informations about Java. After, there are some chapters very boring, for example, about the JavaDoc. Even if the book still very good. This is a unique and very worthwhile work for experienced Java developers who want to take their Java skills to the next level. It assumes that the reader is fully comfortable programming in Java, and gives a collection of tips on how to exploit certain language features, how to avoid various pitfalls, and so forth.
The book makes frequent reference to design patterns, but it is not a design patterns book. I give Effective Java my highest recommendation.
May 13, Tomasz rated it it was amazing Shelves: After this book my awareness about how good Java code should look like improved a lot. I learnt a lot of interesting and useful approaches to developing code in different situations.
And, in spite of being heavily packed of knowledge, I can not say that reading this book was difficult. It was a nice lecture although some topics are more complicated and forced me to slow down and analyse paragraphs one by one. More on my blog post. Jul 08, John Chilton rated it really liked it Shelves: If you program Java, you must read this book. You won't learn any new syntax, language feature, library, or framework, but you will be a much better programmer as a result of reading this book.
Its the best anything on Java I have read. Even Ruby and Python programmers will probably get a lot out of this book. This book is simply brilliant.
Updated to the most recent language specification it covers a lot of issues and caveats that almost every Java developer encounters every day. The author is the guy who has designed and implemented the Collections framework and he knows his subject very well. This book can and definitely will increase one's productivity dramatically. The only obvious prerequisite is that a reader should already know and have experience in Java.
Otherwise it would be better to inves This book is simply brilliant. Otherwise it would be better to invest some time and learn the language itself.
Aug 10, Dimitko rated it really liked it. This book impressed me with the amount of practical use-cases of Java subtleties and intricacies -- for example, the proper implementation of "equals" method in classes. The author not only shows us some common misconceptions about the "low level" Java mechanics not the native level, but the basics of the language and the Java API , but also gives us many examples from his rich carreer.
It is my opinion that understanding the basics of Java it turns out many of us don't is the key to avoiding m This book impressed me with the amount of practical use-cases of Java subtleties and intricacies -- for example, the proper implementation of "equals" method in classes.
There is another point. Programs, unlike spoken sentences and unlike most books and magazines, are likely to be changed over time. It's typically not enough to produce code that operates effectively and is readily understood by other persons; one must also organize the code so that it is easy to modify.
There may be ten ways to write code for some task T. Of those ten ways, seven will be awkward, inefficient, or puzzling. Of the other three, which is most likely to be similar to the code needed for the task T' in next year's software release?
Likewise, there are dozens of books on the libraries and APIs associated with the Java programming language. This book addresses your third need: customary and effective usage. Joshua Bloch has spent years extending, implementing, and using the Java programming language at Sun Microsystems; he has also read a lot of other people's code, including mine.
Here he offers good advice, systematically organized, on how to structure your code so that it works well, so that other people can understand it, so that future modifications and improvements are less 1 Effective Java: Programming Language Guide likely to cause headaches—perhaps, even, so that your programs will be pleasant, elegant, and graceful. Guy L. Steele Jr.
Burlington, April Massachusetts 2 Effective Java: Programming Language Guide Preface In I pulled up stakes and headed west to work for JavaSoft, as it was then known, because it was clear that that was where the action was. In the intervening five years I've served as Java platform libraries architect. I've designed, implemented, and maintained many of the libraries and served as a consultant for many others.
Presiding over these libraries as the Java platform matured was a once-in-a-lifetime opportunity. It is no exaggeration to say that I had the privilege to work with some of the great software engineers of our generation.
In the process, I learned a lot about the Java programming language—what works, what doesn't, and how to use the language and its libraries to best effect. This book is my attempt to share my experience with you so that you can imitate my successes while avoiding my failures. I found the format to be singularly effective, and I hope you do too. In many cases, I took the liberty of illustrating the items with real-world examples from the Java platform libraries.
When describing something that could have been done better, I tried to pick on code that I wrote myself, but occasionally I pick on something written by a colleague. I sincerely apologize if, despite my best efforts, I've offended anyone.
Negative examples are cited not to cast blame but in the spirit of cooperation, so that all of us can benefit from the experience of those who've gone before.
While this book is not targeted solely at developers of reusable components, it is inevitably colored by my experience writing such components over the past two decades. Even if you aren't developing reusable components, thinking in these terms tends to improve the quality of the software you write.
Furthermore, it's not uncommon to write a reusable component without knowing it: You write something useful, share it with your buddy across the hall, and before long you have half a dozen users. At this point, you no longer have the flexibility to change the API at will and are thankful for all the effort that you put into designing the API when you first wrote the software. My focus on API design may seem a bit unnatural to devotees of the new lightweight software development methodologies, such as Extreme Programming [Beck99].
These methodologies emphasize writing the simplest program that could possibly work. If you're using one of these methodologies, you'll find that a focus on API design serves you well in the refactoring process.
The fundamental goals of refactoring are the improvement of system structure and the avoidance of code duplication.
These goals are impossible to achieve in the absence of well-designed APIs for the components of the system. No language is perfect, but some are excellent. I have found the Java programming language and its libraries to be immensely conducive to quality and productivity, and a joy to work with.
I hope this book captures my enthusiasm and helps make your use of the language more effective and enjoyable. I thank Lisa, Tim, and Mike for encouraging me to pursue the project and for their superhuman patience and unyielding faith that I would someday write this book.