Effective Java

Effective Java

  • Downloads:3124
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-03-06 03:15:21
  • Update Date:2025-09-06
  • Status:finish
  • Author:Joshua Bloch
  • ISBN:0134685997
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically。 The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots。 Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules。 New library features include pervasive use of functional interfaces and streams, the java。time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections。
In this new edition of Effective Java, Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use。 Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers。
As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples。 The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why。 Coverage includes:
Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java。lang and java。util

Download

Reviews

Elliot Jean

There’re too many good advices that are relevant and practical。 The book warrants multiple reads in a nonlinear fashion。 Since it’s organized in independent sections, it’s a good idea to read the relevant sections when you have a problem at hand。

Radomir Kolev

This review has been hidden because it contains spoilers。 To view it, click here。 Great book。

Diego Pacheco

Must read for java engineers and architects。

Yure Kesley

Um dos melhores livros sobre Java que eu já li。 Contem uma série de consenhos práticos para consolidar o conhecimento sobre a linguagem。

Alexander

Fantastic book that any Java developer should read at some point in their career (preferably earlier on)! Very well laid out and contains many invaluable principles/conventions with good explanations that, when followed, will improve the code you produce。

Óscar López

Put simply, this is one of the best programming books I've ever read, I learned a lot from it。 It shows how to properly use a contemporary release of the Java language, with all its idioms, shortcomings and quirks - but the tips are so good that they easily apply or can be adapted to many other object-oriented languages, specially the statically typed ones。The text is structured as 90 "items", grouped across 12 different subjects ranging from language basics, classes and interfaces to more advan Put simply, this is one of the best programming books I've ever read, I learned a lot from it。 It shows how to properly use a contemporary release of the Java language, with all its idioms, shortcomings and quirks - but the tips are so good that they easily apply or can be adapted to many other object-oriented languages, specially the statically typed ones。The text is structured as 90 "items", grouped across 12 different subjects ranging from language basics, classes and interfaces to more advanced topics such as serialization and concurrency, covering modern constructs like generics, enums, streams and lambdas。Each item discusses in detail advanced techniques and best practices for a particular language feature, providing high quality modern examples - frequently taken from the Java API itself, showing real life hits and misses。 The code examples in the text can be found on GitHub and are practically error free - something unusual in a programming book and highly appreciated; also, the publisher provides an online errata。I love that the issues described are not just theoretical, behind each piece of advice there's an actual problem that occurred in production。 There are few hard rules; most items present the pros and cons of each feature, explaining the nuisances, edge cases and alternatives that should be considered before applying a best practice。A great deal of effort was spent describing potential security issues and possible vectors of attack, almost any language feature can be abused if we're not careful and shield our code against threats - we need to be extra cautious around serialization, cloning and subclassing。Even though the emphasis of this book is on good API design, the tips can be applied to any individual, modular component as well。 The chapters are heavily cross-referenced and the structure of the text makes it easy to refresh the memory about one item in particular, it's enough to read the sentences in bold, skim through the code examples and read the summary at the end of each item。 I intend to come back to this book for years to come, seeking words of wisdom。 。。。more

Nathan Ormond

Very useful - will now make a great reference

Ellen

When I worked at Google, Effective Java was issued to all Java programmers, with good reason。 It tells how to go from programming in Java as a second language to writing fluent and idiomatic code。 The writing is clear, with well-chosen examples。 I have read and reread all 3 editions, and I tell colleagues and students: "If you have time to read only two books on Java, read Effective Java twice。"Caveat: This does not teach the basics of Java。 It is meant for someone who can already program in Jav When I worked at Google, Effective Java was issued to all Java programmers, with good reason。 It tells how to go from programming in Java as a second language to writing fluent and idiomatic code。 The writing is clear, with well-chosen examples。 I have read and reread all 3 editions, and I tell colleagues and students: "If you have time to read only two books on Java, read Effective Java twice。"Caveat: This does not teach the basics of Java。 It is meant for someone who can already program in Java, and possibly other languages, and wants to get to the next level。 。。。more

David Anderson

Must read for any java developer。 This takes a pragmatic approach to writing code the way the Java SD should be used。

Ľuboš Barskto

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 s 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。 。。。more

Luong

I met it in my computer at our company during probation period。 It is useful when we want to understand how to code more effectively in Java programming language。It is basic things I recognized during working as a Java developer。I want to recommend to you。

Ioram Gordadze

Amazing book, must read for Java developers。Author explains in a very direct to point and clean manner。

Farplaneguide

I found this book by asking a simple question, which books are mandatory reading to learn about Java。 Once I finished it I realized it also answered another question, "which books are recommended reading for any software developer"。 Often times when trying to learn a new language or improve knowledge on a familiar one, it feels like most available literature is aimed at students learning to code or at experienced developers trying to improve some highly technical knowledge。 The books that I find I found this book by asking a simple question, which books are mandatory reading to learn about Java。 Once I finished it I realized it also answered another question, "which books are recommended reading for any software developer"。 Often times when trying to learn a new language or improve knowledge on a familiar one, it feels like most available literature is aimed at students learning to code or at experienced developers trying to improve some highly technical knowledge。 The books that I find the best are the ones that are about learning from experience。 That's how this books feels, not as a glossary on how to code in Java, but instead as a personal blog of an experienced developer going through learned lessons and past mistakes。 。。。more

Ryuk

no code highlightno threading chapter not even gui introductioncongrats 。。。 after reading this book you can do console application

Andrey Bevilacqua

This book changed my life as a programmer。 It is an amazing book。

Larry

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。 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。 。。。more

Akash Goel

Pretty great。 Lots of good advice on classes, methods, SOLID design, etc。 One improvement could be to have more graphics and bullets at the end of each chapter, because the topics are DENSE! Still, a must-have desk accessory for any software engineer who codes in Java。 Recommended!

ziombel

Opinia na temat wydania III。 Książka Blocha zawiera wiele ciekawych informacji i porad dotyczących programowania w Java(dla trochę bardziej zaawansowanych)。 Opisane są w niej często spotykane problemy oraz rozwiązania dla nich。 Łącznie 90 tematów。 Trochę miejsca jest poświęcone dobrym praktykom programowania。 Cześć z nich dotyczy głównie twórców bibliotek, którzy udostępniają swoje klasy użytkownikom a część z nich powinna być stosowana przez wszystkich programistów。 Porady ze wskazanej pozycji Opinia na temat wydania III。 Książka Blocha zawiera wiele ciekawych informacji i porad dotyczących programowania w Java(dla trochę bardziej zaawansowanych)。 Opisane są w niej często spotykane problemy oraz rozwiązania dla nich。 Łącznie 90 tematów。 Trochę miejsca jest poświęcone dobrym praktykom programowania。 Cześć z nich dotyczy głównie twórców bibliotek, którzy udostępniają swoje klasy użytkownikom a część z nich powinna być stosowana przez wszystkich programistów。 Porady ze wskazanej pozycji pozwalają na unikanie części problemów w programowaniu w Java oraz pozwalają na tworzenie kodu, który jest łatwiejszy w utrzymaniu。Książka była czytana w wersji polskiej。 Jeśli chodzi o tłumaczenie Helionu, to jest to standardowy czyli kiepski poziom。 Wiele użytych zwrotów jest niezrozumiałych lub poprzekręcanych。 Tłumacz starał się przetłumaczyć na polski wszystko i to chyba bez żadnych konsultacji technicznych z programistami。 Jeśli komuś nie przeszkadza czytanie w języku angielskim, to odradzam polską wersję。 Książka zawiera wiele ciekawych i pożytecznych porad。 Polecam wszystkim programistom Java。 。。。more

Rob

Recommended for anyone who is doing full time professional Java development。 Bloch well-codifies a lot of the otherwise cargo-culted tribal knowledge and conventions that are out there, as well as shedding light on many of the weird cases that we run into everyday。 And/but/so then there's a bunch of items that are NOT a part of my everyday 。。。 though I'm sure that's just a matter of circumstance, and for someone out there: they are。It gets pretty technical in places and by necessity can get into Recommended for anyone who is doing full time professional Java development。 Bloch well-codifies a lot of the otherwise cargo-culted tribal knowledge and conventions that are out there, as well as shedding light on many of the weird cases that we run into everyday。 And/but/so then there's a bunch of items that are NOT a part of my everyday 。。。 though I'm sure that's just a matter of circumstance, and for someone out there: they are。It gets pretty technical in places and by necessity can get into the weeds, but most of the content should be accessible to journeyman developers, as well as committed novices。 。。。more

Tianyao Chen

A necessary evil for Java programmers:)

Miloš

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 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 defensiveSummed 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。。。 。。。more

Amr

I read some parts before, they are useful。 Read other stuff in different blog posts or learned them on the way。 Not sure I am going to complete it anyway near soon。

Hamza Assada

Great book, full of ideas and ways

Алексей Осецкий

Описаны полезные правила программирования простым языком。 В конце книги узнал об интерфейса сериализации, возможно посмотрю об этом более подробно

Сергей Лесничий

one of the greatest book about effective java programming

Mihai

L

Henrik Dohlmann

Lots of useful stuff。

Lemon_leaf

The 3rd edition talked about a lot of common mistakes that people would make with the new Java features such as Optional and Stream etc。 Some of the examples are very good, it's hard to spot the bug。 Great practice to read。 The 3rd edition talked about a lot of common mistakes that people would make with the new Java features such as Optional and Stream etc。 Some of the examples are very good, it's hard to spot the bug。 Great practice to read。 。。。more

Markus Michel

If you want to improve your Java programming skills and learn about good code design, read this book。 Even if Java is not your first language。

Dina Bogdan

One of the best books describing Java particularities。 It's not a book that to be read easy and also it's not a book for starting to code in Java as a beginner in coding in general。 For me was a good book, which described some details about important concepts from Java like: multithreading, serialization, collections, generics, etc。 that were not so deep covered in my mind。 One of the best books describing Java particularities。 It's not a book that to be read easy and also it's not a book for starting to code in Java as a beginner in coding in general。 For me was a good book, which described some details about important concepts from Java like: multithreading, serialization, collections, generics, etc。 that were not so deep covered in my mind。 。。。more