effective java 3rd summary

We will summarize the contents of Effective Java 3rd.

Chapter 2 Object Creation and Disappearance

Item 1~9

Chapter 3 Methods common to all objects

Item 10~14

Chapter 4 Classes and Interfaces

Item 15~22 Item 23: Prefer class hierarchies to tagged classes Item 24: Favor static member classes over nonstatic Item 25:Limit source files to a single top-level class

Chapter 5 Generics

Item 26: Don't use raw types Item 27: Eliminate unchecked warnings Item 28: Prefer lists to arrays Item 29: Favor generic types Item 30: Favar generic methods Item 31: Use bounded wildcards to increase API flexibility Item 32: Combine generics and varargs judiciously Item 33: Consider typesafe heterogeneous containers

Chapter 6 enums and annotations

Item 34~35 Item 36: Use EnumSet instead of bit fields Item 37: Use EnumMap instead of ordinal indexing Item 38: Emulate extensible enums with interfaces Item 39: Prefer annotations to naming patterns Item 40: Consistently use the Override annotation Item 41: Use marker interfaces to define types

Chapter 7 Lambda Expressions and Streams

Item 42: Prefer lambdas to anonymous classes Item 43: Prefer method references to lambdas Item 44: Favor the use of standard functional interfaces Item 45: Use streams judiciously Item 46: Prefer side-effect-free functions in streams Item 47: Prefer Collection to Stream as a return type Item 48: Use caution when making streams parallel

Chapter 8 Method

Item 49: Check parameters for validity Item 50: Make defensive copies when needed Item 51: Design method signatures carefully Item 52: Use overloading judiciously Item 53: Use varargs judiciously Item 54: Return empty collections or arrays, not nulls Item 55: Return optionals judiciously Item 56: Write doc comments for all exposed API elements

Chapter 9 Programming in general

Item 57: Minimize the scope of local variables Item 58: Prefer for-each loops to traditional for loops Item 59: Know and use the libraries Item 60: Avoid float and double if exact answers are required Item 61: Prefer primitive types to boxed primitives Item 62: Avoid strings where other types are more appropriate Item 63: Beware the performance of string concatenation Item 64: Refer to objects by their interfaces Item 65: Prefer interfaces to reflection Item 66: Use native methods judiciously Item 67: Optimize judiciously Item 68: Adhere to generally accepted naming conventions

Chapter 10 Exceptions

Item 69: Use exceptions only for exceptional conditions Item 70: Use checked exceptions for recoverable conditions and runtime exceptions for programming errors Item 71: Avoid unnecessary use of checked exceptions Item 72: Favor the use of standard exceptions Item 73: Throw exceptions appropriate to the abstraction Item 74: Document all exceptions thrown by each method Item 75: Include failure-capture information in detail messages Item 76: Strive for failure atomicity Item 77: Don’t ignore exceptions

Chapter 11 Concurrency

Item 78: Synchronize access to shared mutable data Item 79: Avoid excessive synchronization Item 80: Prefer executors, tasks, and streams to threads Item 81: Prefer concurrency utilities to wait and notify Item 82: Document thread safety Item 83: Use lazy initialization judiciously Item 84: Don’t depend on the thread scheduler

Chapter 12 Serialization

Item 85: Prefer alternatives to Java serialization Item 86: Implement Serializable with great caution Item 87: Consider using a custom serialized form Item 88: Write readObject methods defensively Item 89: For instance control, prefer enum types to readResolve Item 90: Consider serialization proxies instead of serialized instances

Impressions

Although there were some omissions, it took about 120 hours to put together Items 1 to 90.

What should I do next? ..

Recommended Posts

effective java 3rd summary
Effective Java 3rd Edition Chapter 5 Generics
Effective Java 3rd Edition Chapter 8 Methods
Java knowledge summary
Effective Java Chapter 2
Java related summary
Effective Java Chapter 6 34-35
Java 8 documentation summary
Java 11 document summary
Effective Java Chapter 4 15-22
Effective Java Chapter 3
Effective Java 3rd Edition Chapter 9 Program General
Effective Java 3rd Edition Chapter 6 enums and annotations
Java 12 new feature summary
[Summary] Java environment preparation
Effective Java 3rd Edition Chapter 4 Classes and Interfaces
Java 13 new feature summary
Effective Java 2nd Edition Related Matters Survey Summary
Effective Java 3rd Edition Chapter 7 Lambda and Streams
Java static [Personal summary]
Thread safe summary ~ Java ~
Java Primitive Specialization Summary
Java development link summary
Personal summary about Java
Java 10 new feature summary
Builder pattern (Effective Java)
java regular expression summary
Java 14 new feature summary
Summary of Java support 2018
Java design pattern summary
Java reserved word summary
Java8 Stream Rough Summary
Java 3rd grade measures Q1 Past question point summary
Effective Java 3rd Edition Section 85 Choose Alternatives Over Java Serialization
Effective Java 3rd Edition Chapter 2 Object Creation and Disappearance
What is Java Assertion? Summary.
[Java11] Stream Summary -Advantages of Stream-
Progate Java (Beginner) Review & Summary
[Java] Summary of regular expressions
[Java] Summary of operators (operator)
Java8 stream, lambda expression summary
Object-oriented summary by beginners (Java)
Summary of Java language basics
Java tips --Spring execution Summary
[Java] Summary of for statements
Summary of Java Math class
From Ineffective Java to Effective Java
[Java11] Stream Usage Summary -Basics-
[Java] Summary of control syntax
Summary of java error processing
[Java] Summary of design patterns
[Java] Summary of mathematical operations
Effective Java 3rd Edition Chapter 3 Methods Common to All Objects
What has changed between Effective Java 2nd Edition and 3rd Edition
Consideration on Java Persistence Framework 2017 (Summary) -1
Summary of [Java silver study] package
[Effective Java] Remove obsolete object references
Summary
AtCoder 400 points algorithm summary (Java edition)
Java
Java "pass by reference" problem summary