20210222 - java-squid/effective-java GitHub Wiki

ํšŒ๊ณ 

Sunny

  • ์ฒซ ์ถœ๊ทผ
  • ์•„์นจ ์ถœ๊ทผํžˆ ์ƒ๋‹นํžˆ ํž˜๋“ค๋‹ค..
  • ํšŒ์‚ฌ๊ฐ€์„œ ์„ธํŒ…ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋Œ€๋ถ€๋ถ„ ์Ÿ์€๊ฑฐ ๊ฐ™์Œ

Roach

  • ๋ฐฑ๊ธฐ์„  ๊ฐ•์˜๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ๊ดœ์ฐฎ์•˜์Œ
  • Chess ๋ฆฌ๋ทฐ๋ฐ›์œผ๋ฉด์„œ ๋ฐฐ์šฐ๋Š”๊ฒƒ์ด ๋„์›€์ด๋˜๊ณ  ์žˆ์Œ

Han

  • Chapter11 ๋„˜์–ด๊ฐ€๊ธฐ์ „๊นŒ์ง€๋Š” ํฌ๊ฒŒ ์–ด๋ ค์šด๋‚ด์šฉ์€ ์—†์—ˆ์Œ
  • ์—ฐํœด์— ๊ณต๋ถ€ํ•˜๋ คํ–ˆ์œผ๋‚˜ ๋ณธ๊ฐ€์—์„œ ํœด์‹ํ•จ
  • ์š”์ฆ˜ ์šด๋™์„ ํ•ด์•ผ๋ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด๋“ฌ

David

  • ์ง€๋‚œ์ฃผ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋А๋ผ ๋ฐ”๋นด์Œ
  • DB B+Tree ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ด๋ดค๋Š”๋ฐ ๊ฐœ๋…์ ์œผ๋กœ ์ข‹์€ ๊ฒฝํ—˜์ด์˜€์Œ

Pyro

  • ๋„ฅ์ŠคํŠธ ์Šคํ…์—์„œ ๋ฆฌ๋ทฐ์–ด๋กœ ํ™œ๋™ ์ œ์•ˆ ๋ฐ›์Œ -> ๋‹ค์Œ์ฃผ๋ถ€ํ„ฐ ์ด๊ฑฐ๋•Œ๋ฌธ์— ๋ฐ”๋น ์งˆ๊ฒƒ ๊ฐ™์Œ.

๊ธฐํƒ€

  • ๋‹ค์Œ ์Šคํ„ฐ๋””๋Š” 3์›” 4์ผ ๋ชฉ์š”์ผ
  • ์Šคํ„ฐ๋”” ์ฃผ์ œ๋Š” ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณด๊ณ  ๊ฒฐ์ •ํ•˜์ž
  • ์ฝ”ํ‹€๋ฆฐ?

Items

Item70

  • ์ž๋ฐ”์˜ Throwable ์ด ๋ฌด์—‡์ธ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์†Œ๊ฐœ ํŽ˜์ด์ง€์˜ ๋А๋‚Œ.
  • ์•„์ดํ…œ 71๊ณผ ์—ฐ๊ด€์ง€์—ˆ์„๋•Œ CheckedException ์˜ ๊ฒฝ์šฐ ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ ๋ณต๊ตฌ ๋กœ์ง์ด ์ด๋ฃจ์–ด์ ธ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ๋Š” CheckedException ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•จ.
  • ๋ฐ˜๋Œ€๋กœ ๋”์ด์ƒ ์ง„ํ–‰๋  ์ด์œ ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ unCheckedException ์„ ์‚ฌ์šฉํ•˜๋ผ

Item71

  • CheckedException
    • ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ ๋ณต๊ตฌํ•ด์•ผ๋งŒ ํ•˜๋Š” Exception
    • Stream ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
    • Transaction Rollback ๋˜์ง€ ์•Š์Œ
  • unCheckedException : ๋”์ด์ƒ ์‹คํ–‰ํ•ด๋„ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ Exception.
    • Transaction Rollback

Item72

  • Exception, RuntimeException, Throwable, Error ๋Š” ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž.
  • ์ž์ฃผ ์“ฐ์ด๋Š” ํ‘œ์ค€ ์˜ˆ์™ธ: IllegalArgument, IllegalState, NullPointer, IndexOutOfBounds, ConcurrentModification, UnsupportedOperation

Item73

  • List ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋‚ด๋ถ€ ๊ตฌํ˜„์ฒด์ธ iterator์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์™ธ๋Š” NoSuchElement..
  • ๋ฐ˜๋ฉด List Interface ์—์„œ๋Š” IndexOfbounded exception.
  • ๋‚ด๋ถ€ ๊ตฌํ˜„์ฒด์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ -> ์ถ”์ƒํ™” ๋ ˆ๋ฒจ(List interface) ๋‹จ์—์„œ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒŒ ๋งž๋Š” ๊ฒƒ.
  • ์‚ฌ์šฉ์ž๋Š” ์™ธ๋ถ€ ์ถ”์ƒํ™” ์ˆ˜์ค€๋งŒ ์•Œ๋ฉด๋˜๋‹ˆ๊นŒ..
  • Exception Chaining

Item74

  • ๊ฐ€๋Šฅํ•˜๋ฉด ์ž๋ฐ”๋…์„ ์ž˜ ์ž‘์„ฑํ•˜์ž...
  • ์ปค๋ฐ‹๋ฉ”์„ธ์ง€๋„ ์ž˜ ์ ์ž..

Item75

  • checked exception ์˜ ๊ฒฝ์šฐ์— ์œ ์šฉํ•  ๋“ฏํ•จ
  • ์˜ˆ์™ธ ๋ฐœ์ƒ ์›์ธ๊ณผ ๊ด€๋ จ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด๋ฉด ์ข‹๋‹ค.
  • Item 72 ๋‚ด์šฉ๊ณผ ์ƒ์ถฉ๋˜๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋จ.

Item76

  • ํ˜ธ์ถœ๋œ ๋ฉ”์†Œ๋“œ๊ฐ€ ์‹คํŒจํ–ˆ์„๋•Œ ์–ด๋–ค ์ „๋žต์œผ๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ• ์ง€
  • ์ œ์ผ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ
  • ๊ฐ€๋ณ€ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹คํŒจ์‹œ ๋กค๋ฐฑํ• ๋•Œ ๋ณต๊ตฌ๊ณผ์ •์ด ๋ณต์žกํ•จ

Item77

  • ์˜ˆ์™ธ๋ฅผ ๋ฌด์‹œํ•˜์ง€๋ง์ž

Item78

  • synchronized : ์›์ž์  ์ˆ˜ํ–‰ , ๋ฐฐํƒ€์  ์ˆ˜ํ–‰
  • volatile : ์›์ž์  ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ• ๋•Œ ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•ด ์‚ฌ์šฉ
  • ๋ฉ”๋ชจ๋ฆฌ ์บ์‰ฌ์™€ ์—ฐ๊ด€์ง€์—ˆ์„๋•Œ volatile ์€ ๊ฐ ์Šค๋ ˆ๋“œ ๋งˆ๋‹ค ๊ฐ€์ง€๋Š” ๋ฉ”๋ชจ๋ฆฌ ์บ์‰ฌ? ๋ฅผ ๋ณด๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ณต์œ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ๋ณ€์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ
  • ์›์ž์  ์ˆ˜ํ–‰ ๊ตฌ๋ถ„์ด ์ฒซ๋ฒˆ์งธ, ๊ทธ ์ดํ›„ ๋ฐฐํƒ€์  ์ˆ˜ํ–‰์— ๋Œ€ํ•ด ์ƒ๊ฐ
  • ์ž๋ฐ” ๋ฉ”๋ชจ๋ฆฌ๋ชจ๋ธ
  • JSR133

๋‹ค์Œ ์•„์ดํ…œ

  • 80, 84 ๊ฐ™์ด ์ง„ํ–‰

๋‹ค์Œ ์ง„ํ–‰์ž

  • roach