Section#15 _ ๊ธฐ๋ณธ API ํด๋์ค
#1 API ๋?
: Application Programming Interface
: ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์์ฃผ ์ฌ์ฉ๋๋ ํด๋์ค ๋ฐ ์ธํฐํ์ด์ค ๋ชจ์ == ๋ผ์ด๋ธ๋ฌ๋ฆฌ
#2 java.lang ํจํค์ง
: Java ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ธ ํด๋์ค๋ฅผ ๋ด๊ณ ์๋ ํจํค์ง
Ex) Scanner, Random ์ ์ฌ์ฉํ๋ ค ํ๋ค๋ฉด importํด์ผ ์ฌ์ฉ ๊ฐ๋ฅ!
Ex) System, String ๋ฑ๊ณผ ๊ฐ์ ํด๋์ค๋ java.lang ํจํค์ง์ ์ํด ์์ด ์ ์ธ ์์ด ์ฌ์ฉ ๊ฐ๋ฅ!
#2-1 Object ํด๋์ค
: Java์ ์ต์์ ํด๋์ค
: ์์ฑ๋๋ ๋ชจ๋ ํด๋์ค๋ ์์ฑ๋ ๋ ์์์ ํ์ง ์์๋ Object๋ฅผ ์๋์ผ๋ก ์์ → ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ
#2-1-1 ๊ฐ์ฒด ๋น๊ต equals() ๋ฉ์๋
: ์ฐธ์กฐํ ๋ฐ์ดํฐ์ ๋น๊ต ์ฐ์ฐ์๋ ๋น๊ต์ฐ์ฐ์๋ ์ ์ ์น ๋ชปํ์ฌ equals()๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ์ฌ์ฉ
#2-1-2 ๊ฐ์ฒด ํด์์ฝ๋ hashCode() ๋ฉ์๋
: ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ํ๋์ ์ ์๊ฐ == hashCode
: hashCode() ๋ฉ์๋๋ ๋ฐํํ๋ ๋ฉ์๋ → HashMap, HashSet์์๋ ์ฌ์ฉ๋จ
: Hash ๊ด๋ จ ์ปฌ๋ ์ ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฒฝ์ฐ, ํด๋น ๋ฉ์๋๋ค์ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ๊ตฌํํด ์ค์ผ ์ ํํ ๊ฐ์ฒด ๋น๊ต ๊ฐ๋ฅ
#2-1-3 ๊ฐ์ฒด ๋ฌธ์ ์ ๋ณด toString() ๋ฉ์๋
: toString() ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ฌธ์ ์ ๋ณด๋ฅผ ๋ฐํํด ์ฃผ๋ ํด๋์ค
: ๋ฉ์๋๋ฅผ ์ฌ์ ์ํด์ ์ฌ์ฉํ๋ฉด ์ํ๋ ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ถ๋ ฅ ๊ฐ๋ฅ
#2-2 String ํด๋์ค
: ๋ฌธ์์ด์ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒดํ ๋ฐ์ดํฐ
: String ์ธ์คํด์ค๋ ํ ๋ฒ ์์ฑ๋๋ฉด ๊ทธ ๊ฐ์ ์ฝ๊ธฐ๋ง ํ๊ณ ๋ณ๊ฒฝํ ์ ์์
#2-2-1 ๋ฌธ์ ์ถ์ถ charAt() ๋ฉ์๋
: ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์์น์ ๋ฌธ์๋ฅผ ๋ฌธ์์ด์์ ์ถ์ถํ ์ ์์
#2-2-2 ๋ฌธ์์ด ์ฐพ๊ธฐ indexOf() ๋ฉ์๋
: ์ ์ฅ๋ ๋ฌธ์์ด ์ค์์ ์ฐ๋ฆฌ๊ฐ ์ฐพ๋ ํน์ ๋จ์ด or ๋ฌธ์ฅ์ ์์ ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ฉ์๋
: ๋ง์ฝ ์ฐพ๋ ๋จ์ด๊ฐ ์์ผ๋ฉด ํด๋น ๋ฉ์๋๋ -1์ ๋ฐํ
: ๋จ์ด๊ฐ ์ค๋ณต์ผ๋ก ์์ผ๋ฉด, indexOf() ๋ฉ์๋๋ ์ฒ์ ๊ฒ์๋๋ ๋จ์ด์ ์์น๋ฅผ ๋ํ๋
: ๋ง์ง๋ง ์์น๋ฅผ ์ฐพ๊ณ ์ถ์ ๋๋ lastIndexOf() ๋ฉ์๋ ์ฌ์ฉ
#2-2-3 ๋ฌธ์์ด ๋ณํ replace() / replaceAll ๋ฉ์๋
: ํน์ ๋ฌธ์ ๋ฐ ๋ฌธ์์ด์ ์ํ๋ ๋จ์ด๋ก ๋ณ๊ฒฝํด ์ฃผ๋ ๋ฉ์๋
: ๊ธฐ๋ฅ์์ ์ด์ ์ผ๋ก ์ธํด replaceAll์ ์ฃผ๋ก ์ฌ์ฉ
: replace ๊ธฐ๋ฅ์ ์ํ๋ ํ ์คํธ ํ์์ ๋ฐ์ดํฐ๋ก ์ฝ๊ฒ ๋ณ๊ฒฝํ๋๋ฐ ๋์
// ๊ตฌํ ๋ฐฉ๋ฒ
replaceAll(๋ณ๊ฒฝ ๋์, ๋ณ๊ฒฝํ ๋จ์ด);
#2-2-4 substring ๋ฉ์๋
: ์ํ๋ ์์น์์ ๋ฌธ์์ด์ ์๋ผ์ ์ฌ์ฉํ ์ ์๋ ๋ฉ์๋ → ์ ๋ ฅ๋ ๋ฌธ์์ด ์ค์์ ํน์ ์์น์ ๋ฌธ์๋ฅผ ์ถ์ถํ ์ ์์
: ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ์ ๋๊ฐ์ง ํ์ ์ด ์กด์ฌ
Type 1.
substring(int beginIndex)
Type 2.
substring(int beginIndex, int endIndex)
#2-3 StringBuffer์ StringBuilder
: StringBuffer์ StringBuilder๋ ๋ด๋ถ์ ์ฌ์ ๊ณต๊ฐ์ ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด์ ํฉ์น ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๋กญ๊ฒ ์์ฑํ๋ ๊ณผ์ ์ String๋ณด๋ค ํ์ ํ ์๋ต ๊ฐ๋ฅ
: StringBuff๋ ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ์ฑ ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ๊ฐ์ง๊ณ ์์ → ์ค๋ ๋ ํ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ StringBuilder์ ์ฑ๋ฅ์ด ์ข์
#2-4 Math ํด๋์ค
: ์ํ์์ ์์ฃผ ์ฌ์ฉํ๋ ์์๋ค๊ณผ ํจ์๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํ
: ๊ฐ์ฒด๋ฅผ ์ ์ธํ์ง ์๊ณ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ชจ๋ ๋ฉ์๋ == ์ ์ ๋ฉ์๋
#2-5 Wrapper ํด๋์ค
: ๊ธฐ๋ณธ ์๋ฃํ์ ๊ฐ์ฒด๋ก ๋ค๋ฃจ๊ธฐ ์ํ ํด๋์ค → ๊ธฐ๋ณธํ์ ๋ฐ์ดํฐ ํ์ ์ ํด๋์ค๋ก ํฌ์ฅํ์ฌ Wrapper
#2-5-1 AutoBoxing๊ณผ AutoUnBoxing
: Boxing → ๊ธฐ๋ณธ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ Wrapper ํด๋์ค์ ์ธ์คํด์ค๋ก ๋ณํํ๋ ๊ณผ์
: UnBoxing → Wrapper ํด๋์ค์ ์ธ์คํด์ค์ ์ ์ฅ๋ ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ๋ฐ์ดํฐ๋ก ๊บผ๋ด๋ ๊ณผ์
: JDK 1.5๋ถํฐ๋ ๋ฐ์ฑ, ์ธ๋ฐ์ฑ์ด ํ์ํ ์ํฉ์ ๋ฐ๋ผ ์๋ฐ ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ์ฒ๋ฆฌ → Auto++
#2-5-2 ๋ฌธ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ซ์ ํ์ ์ ๋ฐ์ดํฐ๋ก ๋ณํ
: Wrapper ํด๋์ค์๋ ๋ฌธ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ซ์(์ ์ or ์ค์) ํ์ ์ ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํ ์ ์๋ ๊ธฐ๋ฅ์ด ์์
#3 java.util ํจํค์ง
#3-1 Calendar ํด๋์ค ์ ์ธ
: ์ถ์ ํด๋์ค → new ํค์๋ ์ฌ์ฉํ์ง ์์, ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ๋ฐ์์ค๋ ํ์์ผ๋ก ์ ์ธ
: ์ถ์ ํด๋์ค ์ ์ธ ์ด์ → ๋๋ผ, ์ง์ญ๋ง๋ค ๋ ์ง ๋ฐ ์๊ฐ ๊ณ์ฐ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ
Calendar cal = new Calendar(); // ์๋ฌ
Calendar cal = Calendar.getInstance();