์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์ ์์ฑ๋์๋ค.์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋จ์ ์๋์ฐ or ๋ฆฌ๋ ์ค ๊ฐ์ ์ด์์ฒด์ ์์์ ์คํ๋๋ค.๊ทธ๋ฌ๋ java ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ์์ ์๋ฐ ๊ฐ์๋จธ์ Java Virtual Machine์ด ์๋ค. ์ด์์ฒด์ ๋ ์๋ฐ ๊ฐ์๋จธ
ํด๋์ค ํด๋์ค = ๋ฐ์ดํฐ + ๋ฉ์๋ ํด๋์ค์ ๊ตฌ์ฑ๊ณผ ์ธ์คํด์คํ ์ธ์คํด์ค ๋ณ์(๋ฉค๋ฒ ๋ณ์, ํ๋) : ํด๋์ค ๋ด์ ์ ์ธ๋ ๋ณ์ ์ธ์คํด์ค ๋ฉ์๋ : ํด๋์ค ๋ด์ ์ ์๋ ๋ฉ์๋ ์ธ์คํด์ค ๋ณ์๋ ๊ฐ์ ํด๋์ค ๋ด์ ์์นํ ๋ฉ์๋ ๋ด์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ํด๋์ค๋ ํ(Mold
์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์ ๋ด๊ฐ ์ดํดํ๋๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ์์ฑ๋์๋ค.try ์์ญ์์ ๋ฐ์ํ ์์ธ ์ํฉ์ catch ์์ญ์์ ์ฒ๋ฆฌํ๋ค.catch ๋ ๋ฉ์๋์ฒ๋ผ ๋์ํ๋ค.์๋ฐ๋ ์์ธ ์ํฉ๋ณ๋ก ๊ทธ ์ํฉ์ ์๋ฆฌ๊ธฐ ์ํ ํด๋์ค๋ฅผ ์ ์ํ๊ณ
equals์ == ์ฐ์ฐ์, ๊ทธ๋ฆฌ๊ณ hashCode
์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์๋ด๊ฐ ์ดํดํ๋๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ์์ฑ๋์๋ค.StringTokenizer ํด๋์ค๋ ๊ตฌ๋ถ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด์ ๋๋ ํ ํฐ์ ๋ง๋ ๋ค. ๊ตฌ๋ถ์๋ ํ ํฐ์ผ๋ก ๊ตฌ๋ถ๋์ง ์๊ณ ๋ฒ๋ ค์ง๋ค. ๊ตฌ๋ถ์๋ ํ ํฐ์ผ๋ก ๋ฐํํ๊ณ ์ถ๋ค๋ฉด
์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์๋ด๊ฐ ์ดํดํ๋๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ์์ฑ๋์๋ค.๐ค ์ ๋ค๋ฆญ?์ ๋ค๋ฆญ์ด ๊ฐ๋ ์๋ฏธ๋ ์ผ๋ฐํ์ด๋ค. ์ฌ๊ธฐ์ ์ผ๋ฐํ์ ๋์์ ์๋ฃํ์ด๋ค.์ ๋ค๋ฆญ์ด ๋ฑ์ฅํ๋ฉด์ ์๋ฃํ์ ์์กด์ ์ด์ง ์์ ํด๋์ค๋ฅผ ์ ์ํ ์ ์๊ฒ ๋์๋ค.์์
์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์๋ด๊ฐ ์ดํดํ๋๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ์์ฑ๋์๋ค.ํ๋ ์์ํฌ๋ ์ฌ๋ฌ ๋ถ์ผ์์ ์์ดํ ๊ฐ๋ ์ผ๋ก ์ฐ์ด์ง๋ง "์ ์ ์๋ ๊ตฌ์กฐ ๋๋ ๊ณจ๊ฒฉ"์ด๋ผ๋ ๊ณตํต๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.๋ฐ๋ผ์ ์๋ฐ์์์ ํ๋ ์์ํฌ๋ "์ ์ ์๋ ๊ตฌ์กฐ์
์ด ๋ ธํธ๋ "์ค์ฑ์ฐ์ ์ดํ java ํ๋ก๊ทธ๋๋ฐ" ์ฑ ์ ๊ณต๋ถํ๋ฉด์๋ด๊ฐ ์ดํดํ๋๋ก ๋ค์ ์ ๋ฆฌํ๋ฉด์ ์์ฑ๋์๋ค.์๋ฐ๋ฅผ ๊ธฐ์ด๋ถํฐ ํ๋ํ๋ ์ฒดํํ๋ ค๊ณ ์ ๋ฆฌํ๋ฉด์ ๊ณต๋ถํ๋ค ๋ณด๋ ์ง๋๊ฐ ๋ฆ์ ๊ฒ์ด ์ฌ์ค์ด๋ค ใ ๊ทธ๋๋ ๋๊น์ง ํฌ๊ธฐํ์ง ์๊ณ ์๋ฐ๋ฅผ ์ ๋ณตํด๋ณด๋ ค ๋ ธ๋ ฅํ๊ฒ ๋ค ๐ฅฒ์๋ฐ๋ ๊ฐ์ฒด์ง
๋๋ค์์ ๊ฒฐ๊ตญ ๋ฉ์๋ ์ ์์ด๋ค!public static void reverse(List<?> list) ์ด static ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํฐ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก, ์๋ฐ 8์์ ๋ถํฐ๋ ๋๋ค์ ์์ฑ ํ์ ์์ด ๋ค์๊ณผ ๊ฐ์ด ๋ฉ์๋ ์ ๋ณด๋ง ์ ๋ฌํ ์ ์๋ค.์ด๋ ๊ฒ ๋ฉ์๋
์ฝ๋๋ฅผ ์์ฑํ๋ค๋ณด๋ฉด NullPointerException ์์ธ๋ฅผ ์ ํ ์ ์๋๋ฐ,์ด๋ฅผ ๋จ์ํ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๊ฒ์ด Optional ํด๋์ค์ด๋ค.Optional ํด๋์ค๋ java.util ํจํค์ง์ ๋ฌถ์ฌ ์๊ณ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด ์๋ค.Optional์ ๋ฉค๋ฒ va
์คํธ๋ฆผ ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์ ์ธ์คํด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ ํ์ดํ์ ํ๋ ค๋ณด๋ธ๋ค. ์ค๊ฐ ์ฐ์ฐ : ๋ง์ง๋ง์ด ์๋ ์์น์์ ์งํ์ด ๋์ด์ผ ํ๋ ์ฐ์ฐ ์ต์ข ์ฐ์ฐ : ๋ง์ง๋ง์ ์งํ์ด ๋์ด์ผ ํ๋ ์ฐ์ฐ ์คํธ๋ฆผ์ ์ค๊ฐ ์ฐ์ฐ๊ณผ ์ต์ข ์ฐ์ฐ์ ์งํํ๊ธฐ ์ข์ ๊ตฌ์กฐ๋ก ๋ฐฐ์น๋ ๋ณต์ฌ๋ณธ์ด๋ผ ํ
๋จ์ ํ ์คํธ๋ ์ฒ์์ด๋ผ ๐
JUnit5๊ณผ assertJ ๐
์๋ฐ์์์ ๊ฐ์ฒด ๋ณต์ฌ ๐
Effective java - item 1. ์์ฑ์ ๋์ ์ ์ ํฉํฐ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณ ๋ คํ๋ผ
๋ถ๋ณ ๊ฐ์ฒด๋ฅผ ๊ณต๋ถํด๋ณด๋ค ์ ๋ฆฌํด๋ฒ๋ฆฐ String vs StringBuffer vs StringBuilder ๐
[Java] ๋ถ๋ณ ๊ฐ์ฒด (Immutable Class)๋ ๐
Effective java - item 28. ๋ฐฐ์ด๋ณด๋ค๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ผ (feat. ์ ๋ฏธ์ ์์ ๋ฐฐ์ด๋ง๊ณ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํ๋?)
[Effective java] item 34. int ์์ ๋์ ์ด๊ฑฐ ํ์ ์ ์ฌ์ฉํ๋ผ
์๋ฐ์ ์ ์ 3rd Enum(์ด๊ฑฐํ) ์ ๋ฆฌ ๐
[Java] Stream์ ๋ถ์ด๋ด ์๋ค ๐
[Java] ๋ํํ ๋ฑ ๊ฑธ๋ฆฐ BigDecimal ๐
[Java] ๋ด๊ฐ ์ดํดํ ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค์ ์ฐจ์ด ์ ๋ฆฌ ๐
[Java] Functional Interface์ ๋ํ์ฌ ๐