20201116 - java-squid/effective-java GitHub Wiki

ํšŒ๊ณ 

Sunny

  • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” 3์ผ ์ •๋„ ๊ณต๋ถ€ํ•จ.
  • ์ž์†Œ์„œ ์ค€๋น„๋“ฑ๋“ฑ.

Han

  • ์ดํŽ™ํ‹ฐ๋ธŒ ์ž๋ฐ” 3,4์ผ ๊ณต๋ถ€ํ•จ.

Henry

  • ๋‚ด์šฉ์ด ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•„์„œ, ๊ฐ€๋ณ๊ฒŒ ๋ดค๋‹ค.
  • ํ•ธ๋“œํฐ ๋ฐ”๊ฟจ์Œ

David

  • ๋‚ด์šฉ์ด ์‰ฌ์šด ๊ฒƒ๋„ ์žˆ์—ˆ๊ณ , ๊ฐ€๋ณ๊ฒŒ ํ–ˆ๋‹ค.
  • ๊ธˆ๋ฐฉ ๋๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. 9์‹œ์ „๊นŒ์ง€

Items

[์•„์ดํ…œ 21]

  • apache-common, google-guava ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค.
  • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ๊ฐ๊ฐ ๊ตฌํ˜„์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž.
    • ๊ทธ๋Ÿฌ๋ฉด ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„์— ์žˆ๋Š” ๊ฒฐํ•จ์„ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ...?
  • mutex, semaphore์— ๋Œ€ํ•ด

[์•„์ดํ…œ 22]

  • ObjectStreamConstants ์™œ ๋งŒ๋“ค์—ˆ์„๊นŒ?
    • ์‹ค์ˆ˜
    • ์„ค๊ณ„์ƒ ์ž˜๋ชป ๋˜๊ธด ํ–ˆ์ง€๋งŒ, ์‚ญ์ œํ•จ์œผ๋กœ์จ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตณ์ด ์ง€์šฐ์ง„ ์•Š๋Š”๋“ฏ.

[์•„์ดํ…œ 23]

  • ํด๋ž˜์Šค ์„ค๊ณ„ ์‹œ, ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋งˆ์ธ๋“œ๋ฅผ ๋‹ค์‹œํ•œ๋ฒˆ ์ƒ๊ฐํ•˜์ž

[์•„์ดํ…œ 24]

  • ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค์ธ์ง€ ์ •๋„๋งŒ, ์•Œ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
  • Map.entry interface์— ๋Œ€ํ•ด
    • ์ธํ„ฐํŽ˜์ด์Šค ๋ชฉ์ ์ด๋‚˜ ์‚ฌ์šฉ์— ๋Œ€ํ•ด ๋‹ค์‹œ ํ•œ๋ฒˆ ์•Œ์•„๋ด์•ผํ• ๋“ฏ.
  • ์–ด๋А ๊ฒฝ์šฐ์— ์ •์ , ๋น„์ •์  ๋ฉค๋ฒ„ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?
    • ๋ฐ”๊นฅ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•˜๋ƒ ์•ˆํ•˜๋ƒ์˜ ์ฐจ์ด
    • Iterator, Adaptor๋Š” ๋ฐ”๊นฅ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•ด์•ผ์ง€๋งŒ ์“ธ๋ชจ๊ฐ€ ์žˆ๋Š” ํด๋ž˜์Šค.
    • Entry ๋Š” Map ๋‚ด๋ถ€์— ์žˆ์ง€๋งŒ, Map ์ •๋ณด์— ๋Œ€ํ•ด ์•Œ ํ•„์š” ์—†์Œ --> ๊ทธ๋ž˜์„œ ์ •์  ๋ฉค๋ฒ„ ํด๋ž˜์Šค๋กœ ๊ฐ€๋Šฅ
    • ๋ฐ˜๋ฉด Iterator๋“ค์€ ๋ฐ”๊นฅ ์ธ์Šคํ„ด์Šค ์ •๋ณด๋ฅผ ์•Œ์•„์•ผ ํ•˜๋‹ˆ๊นŒ.. --> ๋น„์ •์  ํด๋ž˜์Šค
  • ์ •์  ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ํƒ‘ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅํ•˜๋‹ค (๋ฐ”๊นฅ ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—)
  • ๋น„์ •์  ํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ, ๋ฐ”๊นฅ ํด๋ž˜์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ํƒ‘ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒŒ ์–ด๋ ต๊ฑฐ๋‚˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค
    • ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•ด๋‹น ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋„๋ก ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
  • ๋น„์ •์  ๋ฉค๋ฒ„ ํด๋ž˜์Šค์˜ ์ ‘๊ทผ์ œํ•œ์ž์˜ ๊ฒฝ์šฐ ์ผ๋‹จ privateํ•˜๊ฒŒ ๋งŒ๋“ค์–ด๋ณด๊ณ , ๊ทธ๊ฒŒ ํž˜๋“ค๋‹ค๋ฉด public, proteced๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฑฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด์ž
    • ์ •์  ๋ฉค๋ฒ„์ผ ๊ฒฝ์šฐ์—๋งŒ public ์ผ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„๋“ฏ.

[์•„์ดํ…œ 25]

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒŒ ์žฌ๋ฐŒ๋‹ค.
  • ์ž๋ฐ” ์ปดํŒŒ์ผ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์  ๋‹จ์œ„๊ฐ€ ํŒŒ์ผ ๋‹จ์œ„์—ฌ์„œ...๊ทธ๋Ÿฐ๋“ฏ