20201214 - java-squid/effective-java GitHub Wiki

회고

Sunny

  • λžŒλ‹€, μŠ€νŠΈλ¦Όμ„ μ œλŒ€λ‘œ 배울 수 μžˆμ–΄ μ’‹μ•˜λ‹€.
  • Practical λͺ¨λ˜μžλ°”λ₯Ό 톡해 λ‚΄μš©μ„ μ’€ 더 보좩할 수 μžˆμ—ˆλ‹€.
  • κΈˆμš”μΌ λ©΄μ ‘μ΄λΌμ„œ 두근거린닀.

Han

  • μŠ€ν„°λ””μ—λŠ” 큰 뢀담은 μ—†μ—ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€μ—μ„œ λžŒλ‹€κ°€ λ‚˜μ™€λ„ μ΄ν•΄ν•˜κΈ° 쉬웠닀.
  • 1κΈ°λ™μ•ˆ μ΄νŽ™ν‹°λΈŒ μžλ°” μ•„μ΄ν…œ λ°˜κΉŒμ§€μ™€μ„œ 기쁨.
  • μ§€λ‚œμ£Όμ— 3κ°œμ›”μ§ΈλΌ λ©΄λ‹΄ν•  수 μžˆλŠ” 기회λ₯Ό μ–»μ–΄ μ’‹μ•˜λ‹€.
  • νšŒμ‚¬μ— 당첨

Henry

  • λžŒλ‹€, 슀트림이 μ‹€μ œ 많이 μ‚¬μš©ν•  수 μžˆλŠ” λ‚΄μš©μ΄λΌ μ•ŒκΈ° 쉬웠닀.
  • νšŒμ‚¬μ—μ„œ μƒˆλ‘œ μ‹œμž‘ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ—μ„œ κ°œλ°œν•  λ“―.
  • K - μ—°νœ΄λ‹€.

Jack

  • λ‚΄μš© μžμ²΄λŠ” μ΅μˆ™ν•œ λ‚΄μš©μ΄λΌ 재밌게 μ½μ—ˆμœΌλ‚˜ 이번주 λ°”μœμ‹œκΈ°λΌ μ œλŒ€λ‘œ μ½μ§€λŠ” λͺ»ν•¨.
  • ν•„μš”ν•œ κΈ°μˆ μ„ λ°°μš°λŠ”κ²Œ λ¨Όμ € μš°μ„ .

κ·Έ μ™Έ

  • Out: Jack // In: Ever
  • μŠ€ν„°λ”” 2κΈ°λŠ” μ–΄λ–»κ²Œ μ‹œμž‘ν• κΉŒ?
  • 2κΈ°λŠ” 1μ›” 11일 (3κ°œμ›”) , item 46 ~ 90κΉŒμ§€

Items

[μ•„μ΄ν…œ 42]

  • λŒ€λΆ€λΆ„μ˜ κ²½μš°μ—λŠ” 읡λͺ…ν΄λž˜μŠ€ λŒ€μ‹  λžŒλ‹€λ₯Ό μ“°μž.
  • λžŒλ‹€, 읡λͺ… ν΄λž˜μŠ€λŠ” 직렬화λ₯Ό μ‚Όκ°€μ•Όν•œλ‹€. -> κ°€μƒλ¨Έμ‹ λ§ˆλ‹€ μ§λ ¬ν™”λœ 객체가 달라진닀.
  • ComparatorλŠ” 직렬화가 κ°€λŠ₯ν•œ 데이터 ꡬ쑰(TreeSet, TreeMap)μ—μ„œ Comparatorλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 직렬화λ₯Ό ν•œλ‹€.
  • λ‚˜μ€‘μ— 쑰사할 것(Comparator 직렬화)

[μ•„μ΄ν…œ 43]

  • λΉ„ν•œμ •μ 
List<String> list = new ArrayList<>();
list.stream().sorted((String a, String b) -> a.compareTo(b))
list.stream().sorted(String::compareTo)
Calendar cal = Calendar.getInstance();
cal::getTime // ν•œμ •μ  λ©”μ„œλ“œ μ°Έμ‘°λ‹€.
  • ν•œμ •μ  λ©”μ„œλ“œ μ°Έμ‘°λŠ” μ™ΈλΆ€μ—μ„œ μ •μ˜ν•œ 객체의 λ©”μ„œλ“œλ₯Ό μ°Έμ‘°ν•  λ•Œ μ‚¬μš©λ˜λ©°
  • λΉ„ν•œμ •μ  λ©”μ„œλ“œ μ°Έμ‘°λŠ” λžŒλ‹€ ν‘œν˜„μ‹ λ‚΄λΆ€μ—μ„œ μƒμ„±ν•œ 객체의 λ©”μ„œλ“œλ₯Ό μ°Έμ‘°ν•  λ•Œ μ‚¬μš©ν•œλ‹€.

[μ•„μ΄ν…œ 44]

@FunctionalInterface 
interface EldestEntryRemovalFunction<K,V> {
    ...
}
  • 일반 μΈν„°νŽ˜μ΄μŠ€μ™€ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€μ˜ 차이점
  • μΌλ°˜μ€ μ—¬λŸ¬ λ©”μ„œλ“œκ°€ κ°€λŠ₯, ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λŠ” ν•˜λ‚˜μ΄λ©° λžŒλ‹€μ—μ„œ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λ‘œ μ •μ˜ν•œ μΈν„°νŽ˜μ΄μŠ€λ§Œ κ°€λŠ₯.
  • @FunctionalInterface λ₯Ό λΆ™μ—¬μ•Ό λ°˜λ“œμ‹œ ν•¨μˆ˜ν˜• μΈν„°νŽ˜μ΄μŠ€λŠ” μ•„λ‹ˆλ‹€.

[μ•„μ΄ν…œ 45]

  • μŠ€νŠΈλ¦Όμ„ κ³Όμš©ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ˜ μœ μ§€λ³΄μˆ˜κ°€ μ–΄λ €μ›Œμ§„λ‹€.
  • 반볡문 같은 경우 슀트림과 일반 for문을 λ‘˜ λ‹€ 해보고 κ°„λ‹¨ν•œ 것을 써라.
  • 슀트림이 λ‘κ°œμ΄μƒμ΄λ©΄ 일반 for문을 μ“°μž.

마무리

  • Jack: μ•„μ΄ν…œ 45(μ±…μ˜ μ•„μ΄ν…œ 절반)κΉŒμ§€ 잘 였고 μ§€κΈˆμ€ μž μ‹œ λ©ˆμΆ”μ§€λ§Œ λ‚˜μ€‘μ—” μ„œλ‘œ 도움이 λ˜λŠ” μŠ€ν„°λ””μ˜€μœΌλ©΄ μ’‹κ² λ‹€.
  • Henry: κ°•μ œμ„±μ΄ μžˆμœΌλ‹ˆ μ’€ 더 μžμ„Έν•˜κ²Œ 읽고, μŠ€ν„°λ””ν•˜λ©΄μ„œ μ±… μ΄μ™Έμ˜ μžλ°”μ— λŒ€ν•œ μ˜κ²¬μ„ λ‚˜λˆŒ 수 μžˆμ–΄μ„œ μ’‹μ•˜λ‹€. 직μž₯이 μš°μ„ μˆœμœ„κ°€ μžˆμ–΄ λ‚˜κ°€μ„œ 아쉽닀.
⚠️ **GitHub.com Fallback** ⚠️