effective java 3rdまとめ

Effective Java 3rdの内容をまとめていく。

# 2章 オブジェクトの生成と消滅

## [Item 1～9](https://qiita.com/nannany/items/2322988407acce14669d)

# 3章 全てのオブジェクトに共通のメソッド

## [Item 10～14](https://qiita.com/nannany/items/ef9bca97b888f6454c94)

# 4章 クラスとインターフェース

## [Item 15～22](https://qiita.com/nannany/items/dbb7f446fea9a474b8d1)
## [Item 23: Prefer class hierarchies to tagged classes](https://qiita.com/nannany/items/5bd9e7c46085921e9473)
## [Item 24: Favor static member classes over nonstatic](https://qiita.com/nannany/items/d6e0b287ab5f5dfc4a4a)
## [Item 25:Limit source files to a single top-level class](https://qiita.com/nannany/items/f31bc23943ed79e70ce2)

# 5章 ジェネリクス

## [Item 26: Don't use raw types](https://qiita.com/nannany/items/6ed044dcc6a4c770fb44)
## [Item 27: Eliminate unchecked warnings](https://qiita.com/nannany/items/e40c71a707a78b913e26)
## [Item 28: Prefer lists to arrays](https://qiita.com/nannany/items/49a6c522f142a4361f75)
## [Item 29: Favor generic types](https://qiita.com/nannany/items/f28612dc52c99013b022)
## [Item 30: Favar generic methods](https://qiita.com/nannany/items/1ec592e8f2f20ab9d920)
## [Item 31: Use bounded wildcards to increase API flexibility](https://qiita.com/nannany/items/bf92cc7b38ccb010c493)
## [Item 32: Combine generics and varargs judiciously](https://qiita.com/nannany/items/274c161b4c604b8a242c)
##[Item 33: Consider typesafe heterogeneous containers](https://qiita.com/nannany/items/620e92eb39f130bf3acf)

# 6章 enumとアノテーション
## [Item 34～35](https://qiita.com/nannany/items/770d7310fc639a3a306a)
## [Item 36: Use EnumSet instead of bit fields](https://qiita.com/nannany/items/4ebe738ad2df2d2ea496)
## [Item 37: Use EnumMap instead of ordinal indexing](https://qiita.com/nannany/items/859fe8027f9793aa24f4)
## [Item 38: Emulate extensible enums with interfaces](https://qiita.com/nannany/items/c9503e5cd5a7df78b7d1)
## [Item 39: Prefer annotations to naming patterns](https://qiita.com/nannany/items/84644c64c2aa31a488f0)
## [Item 40: Consistently use the Override annotation](https://qiita.com/nannany/items/de2f2040555e5f304043)
## [Item 41: Use marker interfaces to define types](https://qiita.com/nannany/items/32347b1061da3e3d8ce8)
# 7章 ラムダ式とストリーム
## [Item 42: Prefer lambdas to anonymous classes](https://qiita.com/nannany/items/7fa3bf6c3e7d69af8efd)
## [Item 43: Prefer method references to lambdas](https://qiita.com/nannany/items/06d52987644c9f2ec713)
## [Item 44: Favor the use of standard functional interfaces](https://qiita.com/nannany/items/532f72915c7d1739b5cb)
## [Item 45: Use streams judiciously](https://qiita.com/nannany/items/a32e7a7369c0df1a53d1)
## [Item 46: Prefer side-effect-free functions in streams](https://qiita.com/nannany/items/5241045f6a12ff29db2c)
## [Item 47: Prefer Collection to Stream as a return type](https://qiita.com/nannany/items/4ac62eee930a65ff8475)
## [Item 48: Use caution when making streams parallel](https://qiita.com/nannany/items/d92eaec4c154a8c3aa19)

# 8章 メソッド
## [Item 49: Check parameters for validity](https://qiita.com/nannany/items/92da931a33747970fe30)
## [Item 50: Make defensive copies when needed](https://qiita.com/nannany/items/075c186d404388218112)
## [Item 51: Design method signatures carefully](https://qiita.com/nannany/items/0bbf06d71d3d7598aeb5)
## [Item 52: Use overloading judiciously](https://qiita.com/nannany/items/7f477de08b73943ef1ca)
## [Item 53: Use varargs judiciously](https://qiita.com/nannany/items/9198aecb2019e163e50b)
## [Item 54: Return empty collections or arrays, not nulls](https://qiita.com/nannany/items/6f2754c98bbab4516e83)
## [Item 55: Return optionals judiciously](https://qiita.com/nannany/items/32e97f94b9f105d0e22d)
## [Item 56: Write doc comments for all exposed API elements](https://qiita.com/nannany/items/ded254ac832e8e4b6595)

# 9章 プログラミング一般
## [Item 57: Minimize the scope of local variables](https://qiita.com/nannany/items/73087adaff294474d94c)
## [Item 58: Prefer for-each loops to traditional for loops](https://qiita.com/nannany/items/33fa20e5fa5300fd46fb)
## [Item 59: Know and use the libraries](https://qiita.com/nannany/items/8b6146c74a861c96db23)
## [Item 60: Avoid float and double if exact answers are required](https://qiita.com/nannany/items/e245bac2ceaa7fd290f5)
## [Item 61: Prefer primitive types to boxed primitives](https://qiita.com/nannany/items/adc23ba703af87b21089)
## [Item 62: Avoid strings where other types are more appropriate](https://qiita.com/nannany/items/6d48b66bd23159364fa2)
## [Item 63: Beware the performance of string concatenation](https://qiita.com/nannany/items/e6d616c6c122de098d94)
## [Item 64: Refer to objects by their interfaces](https://qiita.com/nannany/items/793c37acb57887190493)
## [Item 65: Prefer interfaces to reflection](https://qiita.com/nannany/items/98cc3841f57681116abd)
## [Item 66: Use native methods judiciously](https://qiita.com/nannany/items/46d8e805fea636ba030d)
## [Item 67: Optimize judiciously](https://qiita.com/nannany/items/060fdd394ea0471cfa99)
## [Item 68: Adhere to generally accepted naming conventions](https://qiita.com/nannany/items/1ded3686d9f445f22b1b)

# 10章 例外
## [Item 69: Use exceptions only for exceptional conditions](https://qiita.com/nannany/items/156f6fb4438439d649fe)
## [Item 70: Use checked exceptions for recoverable conditions and runtime exceptions for programming errors](https://qiita.com/nannany/items/c81d67bf1fdbcdf4a48d)
## [Item 71: Avoid unnecessary use of checked exceptions](https://qiita.com/nannany/items/7a3da4dd4b97022a643e)
## [Item 72: Favor the use of standard exceptions](https://qiita.com/nannany/items/947ea78b1a2152b40514)
## [Item 73: Throw exceptions appropriate to the abstraction](https://qiita.com/nannany/items/c2fc4269c0ce18a1be89)
## [Item 74: Document all exceptions thrown by each method](https://qiita.com/nannany/items/3afb5554d2607da2b239)
## [Item 75: Include failure-capture information in detail messages](https://qiita.com/nannany/items/45f86b20d3b35e148ffb)
## [Item 76: Strive for failure atomicity](https://qiita.com/nannany/items/1d878a339b5d87525571)
## [Item 77: Don’t ignore exceptions](https://qiita.com/nannany/items/f16e02d7e3232d2576da)

# 11章 並行性
## [Item 78: Synchronize access to shared mutable data](https://qiita.com/nannany/items/7b8cc29c53b8571b9eac)
## [Item 79: Avoid excessive synchronization](https://qiita.com/nannany/items/1f26764447e0f53c8113)
## [Item 80: Prefer executors, tasks, and streams to threads](https://qiita.com/nannany/items/ac966896a68aa7950b7c)
## [Item 81: Prefer concurrency utilities to wait and notify](https://qiita.com/nannany/items/09fe3afcc9562394c20b)
## [Item 82: Document thread safety](https://qiita.com/nannany/items/e303fb199c64b09ab53a)
## [Item 83: Use lazy initialization judiciously](https://qiita.com/nannany/items/2327906430d3614d5bb4)
## [Item 84: Don’t depend on the thread scheduler](https://qiita.com/nannany/items/e8f23c2ea8225551a511)

# 12章 シリアライズ
## [Item 85: Prefer alternatives to Java serialization](https://qiita.com/nannany/items/924b80586c25db9272e9)
## [Item 86: Implement Serializable with great caution](https://qiita.com/nannany/items/1c8a72136057f44e2e58)
## [Item 87: Consider using a custom serialized form](https://qiita.com/nannany/items/1e6e905abc5bff8b242d)
## [Item 88: Write readObject methods defensively](https://qiita.com/nannany/items/dc926052773004755aeb)
## [Item 89: For instance control, prefer enum types to readResolve](https://qiita.com/nannany/items/1785894a5112a3f880ef)
## [Item 90: Consider serialization proxies instead of serialized instances](https://qiita.com/nannany/items/713e6ed0a75a426350b7)


# 所感
ところどころ手抜きはあるものの、120時間くらいかかってItem1~90をまとめることができた。

次は何をしようかな。。