Home - KwangtaekJung/book-effective-java GitHub Wiki
Effective Java 3/E
- 2020λ 7μ 22μΌ
- Joshua Bloch (μ μ΄λ³΅μ°)
- μΈμ¬μ΄νΈ
- Github: https://git.io/fAm6s
- λ°±κΈ°μ λμ μ΄νν°λΈ μλ° κ°μ: http://bit.ly/2Lu4BGi
1μ₯ λ€μ΄κ°κΈ°
νλ‘κ·Έλλ° κ³ μμ κ²½μ§μ μ€λ₯΄λ €λ©΄ λ¨Όμ μ μμ΄ λλ κ·μΉλ€μ λ°°μ΄ ν, μΈμ κ·Έ κ·μΉμ κΉ¨λ λλ μ§λ₯Ό λ°°μμΌ νλ€.
μ΄ μ± μμ μ±λ₯μ μ§μ€νλ λΆλΆμ 그리 λ§μ§ μλ€. λμ νλ‘κ·Έλλ°μ λͺ ννκ³ , μ ννκ³ , μ μ©νκ³ , κ²¬κ³ νκ³ , μ μ°νκ³ , κ΄λ¦¬νκΈ° μ½κ² μ§λλ° μ§μ€νλ€.
2μ₯ κ°μ²΄ μμ±κ³Ό νκ΄΄
μμ΄ν
1. μμ±μ λμ μ μ ν©ν°λ¦¬ λ©μλλ₯Ό κ³ λ €νλΌ
μμ΄ν
2. μμ±μμ 맀κ°λ³μκ° λ§λ€λ©΄ λΉλλ₯Ό κ³ λ €νλΌ
μμ΄ν
3. private μμ±μλ μ΄κ±° νμ
μΌλ‘ μ±κΈν΄μμ 보μ¦νλΌ
μμ΄ν
4. μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νλΌ
μμ΄ν
5. μμμ μ§μ λͺ
μνμ§ λ§κ³ μμ‘΄ κ°μ²΄ μ£Όμ
μ μ¬μ©νλΌ
μμ΄ν
6. λΆνμν κ°μ²΄ μμ±μ νΌνλΌ
μμ΄ν
7. λ€ μ΄ κ°μ²΄ μ°Έμ‘°λ₯Ό ν΄μ νλΌ
μμ΄ν
8. finalizerμ cleaner μ¬μ©μ νΌνλΌ
μμ΄ν
9. try-finally보λ€λ try-with-resourcesλ₯Ό μ¬μ©νλΌ
3μ₯ λͺ¨λ κ°μ²΄μ κ³΅ν΅ λ©μλ
μμ΄ν
10. equalsλ μΌλ° κ·μ½μ μ§μΌ μ¬μ μνλΌ
μμ΄ν
11. equalsλ₯Ό μ¬μ μνλ €κ±°λ hashCodeλ μ¬μ μνλΌ
μμ΄ν
12. toStringμ νμ μ¬μ μνλΌ
μμ΄ν
13. clone μ¬μ μλ μ£Όμν΄μ μ§ννλΌ
μμ΄ν
14. Comparableμ ꡬνν μ§ κ³ λ €νλΌ
4μ₯ ν΄λμ€μ μΈν°νμ΄μ€
μλ° μΈμ΄μλ ν΄λμ€μ μΈν°νμ΄μ€ μ€κ³μ μ¬μνλ κ°λ ₯ν μμκ° λ§μ΄ μλ€.
μ΄λ² μ₯μμλ μ΄λ° μμλ₯Ό μ μ ν νμ©νμ¬ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ°κΈ° νΈνκ³ , κ²¬κ³ νλ©°, μ μ°νκ² λ§λλ λ°©λ²μ μλ΄νλ€.
μμ΄ν
15. ν΄λμ€μ λ©€λ²μ μ κ·Ό κΆνμ μ΅μννλΌ
μμ΄ν
16. public ν΄λμ€μμλ public νλκ° μλ μ κ·Όμ λ©μλλ₯Ό μ¬μ©νλΌ
μμ΄ν
17. λ³κ²½ κ°λ₯μ±μ μ΅μννλΌ
μμ΄ν
18. μμ보λ€λ μ»΄ν¬μ§μ
μ μ¬μ©νλΌ
μμ΄ν
19. μμμ κ³ λ €ν΄ μ€κ³νκ³ λ¬ΈμννλΌ. κ·Έλ¬μ§ μμλ€λ©΄ μμμ κΈμ§νλΌ
μμ΄ν
20. μΆμ ν΄λμ€λ³΄λ€λ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ
μμ΄ν
21. μΈν°νμ΄μ€λ ꡬννλ μͺ½μ μκ°ν΄ μ€κ³νλΌ
μμ΄ν
22. μΈν°νμ΄μ€λ νμ
μ μ μνλ μ©λλ‘λ§ μ¬μ©νλΌ
μμ΄ν
23. νκ·Έ λ¬λ¦° ν΄λμ€λ³΄λ€λ ν΄λμ€ κ³μΈ΅κ΅¬μ‘°λ₯Ό νμ©νλΌ
μμ΄ν
24. λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ
μμ΄ν
25. ν±λ 벨 ν΄λμ€λ ν νμΌμ νλλ§ λ΄μΌλΌ
5μ₯ μ λ€λ¦
μμ΄ν
26. λ‘ νμ
μ μ¬μ©νμ§ λ§λΌ
μμ΄ν
27. λΉκ²μ¬ κ²½κ³ λ₯Ό μ κ±°νλΌ
μμ΄ν
28. λ°°μ΄λ³΄λ€λ 리μ€νΈλ₯Ό μ¬μ©νλΌ
μμ΄ν
29. μ΄μμ΄λ©΄ μ λ€λ¦ νμ
μΌλ‘ λ§λ€λΌ
μμ΄ν
30. μ΄μμ΄λ©΄ μ λ€λ¦ λ©μλλ‘ λ§λ€λΌ
μμ΄ν
31. νμ μ μμΌλμΉ΄λλ₯Ό μ¬μ©ν΄ API μ μ°μ±μ λμ΄λΌ
μμ΄ν
32. μ λ€λ¦κ³Ό κ°λ³μΈμλ₯Ό ν¨κ» μΈ λλ μ μ€νλΌ
μμ΄ν
33. νμ
μμ μ΄μ’
컨ν
μ΄λλ₯Ό κ³ λ €νλΌ
6μ₯ μ΄κ±° νμ κ³Ό μ λν μ΄μ
μμ΄ν
34. int μμ λμ μ΄κ±° νμ
μ μ¬μ©νλΌ
μμ΄ν
35. ordinal λ©μλ λμ μΈμ€ν΄μ€ νλλ₯Ό μ¬μ©νλΌ
μμ΄ν
36. λΉνΈ νλ λμ EnumSetμ μ¬μ©νλΌ
μμ΄ν
37. ordinal μΈλ±μ± λμ EnumMapμ μ¬μ©νλΌ
μμ΄ν
38. νμ₯ν μ μλ μ΄κ±° νμ
μ΄ νμνλ©΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
μμ΄ν
39. λͺ
λͺ
ν¨ν΄λ³΄λ€ μ λν
μ΄μ
μ μ¬μ©νλΌ
μμ΄ν
40. @Override μ λν
μ΄μ
μ μΌκ΄λκ² μ¬μ©νλΌ
μμ΄ν
41. μ μνλ €λ κ²μ΄ νμ
μ΄λΌλ©΄ λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
7μ₯ λλ€μ μ€νΈλ¦Ό
μμ΄ν
42. μ΅λͺ
ν΄λμ€λ³΄λ€λ λλ€λ₯Ό μ¬μ©νλΌ
μμ΄ν
43. λλ€λ³΄λ€λ λ©μλ μ°Έμ‘°λ₯Ό μ¬μ©νλΌ
μμ΄ν
44. νμ€ ν¨μν μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
μμ΄ν
45. μ€νΈλ¦Όμ μ£Όμν΄μ μ¬μ©νλΌ
μμ΄ν
46. μ€νΈλ¦Όμμλ λΆμμ© μλ ν¨μλ₯Ό μ¬μ©νλΌ
μμ΄ν
47. λ°ν νμ
μΌλ‘λ μ€νΈλ¦Όλ³΄λ€ 컬λ μ
μ΄ λ«λ€
μμ΄ν
48. μ€νΈλ¦Ό λ³λ ¬νλ μ£Όμν΄μ μ μ©νλΌ
8μ₯ λ©μλ
μμ΄ν
49. 맀κ°λ³μκ° μ ν¨νμ§ κ²μ¬νλΌ
μμ΄ν
50. μ μμ λ°©μ΄μ 볡μ¬λ³Έμ λ§λ€λΌ
μμ΄ν
51. λ©μλ μκ·Έλμ²λ₯Ό μ μ€ν μ€κ³νλΌ
μμ΄ν
52. λ€μ€μ μλ μ μ€ν μ¬μ©νλΌ
μμ΄ν
53. κ°λ³μΈμλ μ μ€ν μ¬μ©νλΌ
μμ΄ν
54. nullμ΄ μλ, λΉ μ»¬λ μ
μ΄λ λ°°μ΄μ λ°ννλΌ
μμ΄ν
55. μ΅μ
λ λ°νμ μ μ€ν νλΌ
μμ΄ν
56. 곡κ°λ API μμμλ νμ λ¬Έμν μ£Όμμ μμ±νλΌ
9μ₯ μΌλ°μ μΈ νλ‘κ·Έλλ° μμΉ
- μ§μλ³μ, μ μ΄κ΅¬μ‘°, λΌμ΄λΈλ¬λ¦¬, λ°μ΄ν° νμ
, 리νλ μ
, λ€μ΄ν°λΈ λ©μλ
μμ΄ν 57. μ§μλ³μμ λ²μλ₯Ό μ΅μννλΌ
μμ΄ν 58. μ ν΅μ μΈ for 문보λ€λ for-each λ¬Έμ μ¬μ©νλΌ
μμ΄ν 59. λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΅νκ³ μ¬μ©νλΌ
μμ΄ν 60. μ νν λ΅μ΄ νμνλ€λ©΄ floatμ doubleμ νΌνλΌ
μμ΄ν 61. λ°μ±λ κΈ°λ³Έ νμ 보λ€λ κΈ°λ³Έ νμ μ μ¬μ©νλΌ
μμ΄ν 62. λ€λ₯Έ νμ μ΄ μ μ νλ€λ©΄ λ¬Έμμ΄ μ¬μ©μ νΌνλΌ ??
μμ΄ν 63. λ¬Έμμ΄ μ°κ²°μ λ리λ μ£ΌμνλΌ
μμ΄ν 64. κ°μ²΄λ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄ μ°Έμ‘°νλΌ
μμ΄ν 65. 리νλ μ 보λ€λ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
μμ΄ν 66. λ€μ΄ν°λΈ λ©μλλ μ μ€ν μ¬μ©νλΌ
μμ΄ν 67. μ΅μ νλ μ μ€ν νλΌ ??
μμ΄ν 68. μΌλ°μ μΌλ‘ ν΅μ©λλ λͺ λͺ κ·μΉμ λ°λ₯΄λΌ
10μ₯ μμΈ
μμ΄ν
69. μμΈλ μ§μ§ μμΈ μν©μλ§ μ¬μ©νλΌ
μμ΄ν
70. 볡ꡬν μ μλ μν©μλ κ²μ¬ μμΈλ₯Ό, νλ‘κ·Έλλ° μ€λ₯μλ λ°νμ μμΈλ₯Ό μ¬μ©νλΌ
μμ΄ν
71. νμ μλ κ²μ¬ μμΈ μ¬μ©μ νΌνλΌ
μμ΄ν
72. νμ€ μμΈλ₯Ό μ¬μ©νλΌ
μμ΄ν
73. μΆμν μμ€μ λ§λ μμΈλ₯Ό λμ§λΌ
μμ΄ν
74. λ©μλκ° λμ§λ λͺ¨λ μμΈλ₯Ό λ¬ΈμννλΌ
μμ΄ν
75. μμΈμ μμΈ λ©μμ§μ μ€ν¨ κ΄λ ¨ μ 보λ₯Ό λ΄μΌλΌ
μμ΄ν
76. κ°λ₯ν ν μ€ν¨ μμμ μΌλ‘ λ§λ€λΌ
μμ΄ν
77. μμΈλ₯Ό 무μνμ§ λ§λΌ
11μ₯ λμμ±
μμ΄ν
78. 곡μ μ€μΈ κ°λ³ λ°μ΄ν°λ λκΈ°νν΄ μ¬μ©νλΌ
μμ΄ν
79. κ³Όλν λκΈ°νλ νΌνλΌ
μμ΄ν
80. μ€λ λ보λ€λ μ€νμ, νμ€ν¬, μ€νΈλ¦Όμ μ μ©νλΌ
μμ΄ν
81. waitμ notify보λ€λ λμμ± μ νΈλ¦¬ν°λ₯Ό μ μ©νλΌ
μμ΄ν
82. μ€λ λ μμ μ± μμ€μ λ¬ΈμννλΌ
μμ΄ν
83. μ§μ° μ΄κΈ°νλ μ μ€ν μ¬μ©νλΌ
μμ΄ν
84. νλ‘κ·Έλ¨μ λμμ μ€λ λ μ€μΌμ€λ¬μ κΈ°λμ§ λ§λΌ
12μ₯ μ§λ ¬ν
μμ΄ν
85. μλ° μ§λ ¬νμ λμμ μ°ΎμΌλΌ
μμ΄ν
86. Serializableμ ꡬνν μ§λ μ μ€ν κ²°μ νλΌ
μμ΄ν
87. 컀μ€ν
μ§λ ¬ν ννλ₯Ό κ³ λ €ν΄λ³΄λΌ
μμ΄ν
88. readObject λ©μλλ λ°©μ΄μ μΌλ‘ μμ±νλΌ
μμ΄ν
89. μΈμ€ν΄μ€ μλ₯Ό ν΅μ ν΄μΌ νλ€λ©΄ readResolve보λ€λ μ΄κ±° νμ
μ μ¬μ©νλΌ
μμ΄ν
90. μ§λ ¬νλ μΈμ€ν΄μ€ λμ μ§λ ¬ν νλ‘μ μ¬μ©μ κ²ν νλΌ