effective java, visualized
a companion to Bloch's 90 items: the idea, the bad version, the good version, and what changed since.
- 01creating and destroying objectsitems 1–9: factories, builders, singletons, and not leaking.
- 02methods common to all objectsitems 10–14: equals, hashCode, toString, clone, compareTo.
- 03classes and interfacesitems 15–25: accessibility, immutability, composition, interfaces.
- 04genericsitems 26–33: raw types, wildcards, and typesafe containers.
- 05enums and annotationsitems 34–41: enums over ints, EnumSet, EnumMap, @Override.
- 06lambdas and streamsitems 42–48: lambdas, method refs, and using streams judiciously.
- 07methodsitems 49–56: validation, defensive copies, overloading, optionals.
- 08general programmingitems 57–68: scope, libraries, floats, boxing, strings, naming.
- 09exceptionsitems 69–77: when to throw, what to throw, and never ignoring them.
- 10concurrencyitems 78–84: synchronization, executors, and thread safety docs.
- 11serializationitems 85–90: mostly, don't. and if you must, use a proxy.