item 57 leekyunghee - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
- ์ ์ธ์์น์ ๋ฐ๋ฅธ ๋ณ์์ ์ข ๋ฅ
class Variables
// ํด๋์ค ์์ญ
{
int iv; // ์ธ์คํด์ค ๋ณ์
static int cv // ํด๋์ค๋ณ์ (static, ๊ณต์ ๋ณ์)
// ๋ฉ์๋ ์์ญ
void method() {
int localVariable = 0; // ์ง์ญ๋ณ์
}
}
- ํด๋์ค ๋ณ์ - ํด๋์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋
- ์ธ์คํด์ค ๋ณ์ - ์ธ์คํด์ค ์์ฑ์
- ์ง์ญ๋ณ์ - ๋ณ์ ์ ์ธ๋ฌธ ์ํ์
ํด๋์ค์ ๋ฉค๋ฒ์ ์ ๊ทผ ๊ถํ์ ์ต์ํํ๋ผ๋ ์์ดํ 15์ ๋น์ทํ ์ทจ์ง
- ํด๋์ค ๋ด๋ถ ๋ฐ์ดํฐ์ ๋ด๋ถ ๊ตฌํ ์ ๋ณด๋ฅผ ์ธ๋ถ๋ก๋ถํฐ ์ผ๋ง๋ ์ ์จ๊ฒผ๋๋๊ฐ ์ค์ํ๋ค.
- ์ ์ค๊ณ๋ ์ปดํฌ๋ํธ๋ ๋ชจ๋ ๋ด๋ถ ๊ตฌํ์ ์๋ฒฝํ ์จ๊ฒจ ๊ตฌํ๊ณผ API๋ฅผ ๊น๋ํ ๋ถ๋ฆฌํ๋ค.
- ์ ๋ณด ์๋ (์บก์ํ)๋ผ๋ ๊ฐ๋ ์ ์ํํธ์จ์ด ์ค๊ณ์ ๊ทผ๊ฐ์ด๋ค.
์ง์ญ๋ณ์์ ์ ํจ ๋ฒ์๋ฅผ ์ต์๋ก ์ค์ด๋ฉด ์ฝ๋ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ๋์์ง๊ณ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ ๋ฎ์์ง๋ค.
๋ฌธ์ฅ์ ์ ์ธํ ์ ์๋ ๊ณณ์ด๋ฉด ์ด๋์๋ ๋ณ์๋ฅผ ์ ์ธ ๊ฐ๋ฅ
- ๊ฐ์ฅ ์ฒ์ ์ฐ์ผ ๋ ์ ์ธํ๊ธฐ
- ๋ณ์๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ๋ ์์ ์ ํ์ ๊ณผ ์ด๊น๊ฐ์ด ๊ธฐ์ต๋์ง ์์ ์๋ ์๋ค.
- ๋ค ์ด ๋ค์๋ ์ฌ์ ํ ์ด์ ์๊ฒ ๋๊ธฐ ์ฝ๋ค.
- ์ง์ญ๋ณ์์ ๋ฒ์๋ ์ ์ธ๋ ์ง์ ๋ถํฐ ๊ทธ ์ง์ ์ ํฌํจํ ๋ธ๋ก์ด ๋๋ ๋๊น์ง ์ด๋ฏ๋ก ์ค์ ์ฌ์ฉํ๋ ๋ธ๋ก ๋ฐ๊นฅ์ ์ ์ธ๋ ๋ณ์๋ ๊ทธ ๋ธ๋ก์ด ๋๋ ๋ค๊น์ง ์ด์ ์๊ฒ ๋๋ค.
๊ทธ๋์ ์ค์๋ก ์๋ํ ๋ฒ์ ์ ํน์ ๋ค์์ ๊ทธ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ฐํ ๊ฒฐ๊ณผ๋ก ์ด์ด์ง ์ ์๋ค.
- ๊ฑฐ์ ๋ชจ๋ ์ง์ญ๋ณ์๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ ํด์ผ ํ๋ค.
- ์ด๊ธฐํ์ ํ์ํ ์ ๋ณด๊ฐ ์ถฉ๋ถํ์ง ์๋ค๋ฉด ์ถฉ๋ถํด์ง ๋๊น์ง ์ ์ธ์ ๋ฏธ๋ค์ผ ํ๋ค.
- try-catch ๋ฌธ์ ์ด ๊ท์น์์ ์์ธ๋ค.
๋ณ์๋ฅผ ์ด๊ธฐํํ๋ ํํ์์์ ๊ฒ์ฌ ์์ธ๋ฅผ ๋์ง ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด try ๋ธ๋ก ์์์ ์ด๊ธฐํํด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ธ๊ฐ ๋ธ๋ก์ ๋์ด ๋ฉ์๋๊น์ง ์ ํ๋๋ค.
- ๋ฐ๋ณต๋ฌธ์ ๊ฒฝ์ฐ ๋ฐ๋ณต ๋ณ์์ ๊ฐ์ ๋ฐ๋ณต๋ฌธ์ด ์ข ๋ฃ๋ ๋ค์๋ ์จ์ผ ํ๋ ์ํฉ์ด ์๋๋ผ๋ฉด while๋ฌธ ๋ณด๋ค๋ for๋ฌธ์ ์ฐ๋ ํธ์ด ๋ซ๋ค.
- ๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ํฉ์ด๋ฉด (๋ฐ๋ณต์์ remove ๋ฉ์๋๋ฅผ ์จ์ผ ํ๋ค๋ ๊ฐ) for-each๋ฌธ ๋์ for๋ฌธ์ ์ฐ๋ ๊ฒ์ด ๋ซ๋ค.
- ์๋์ ๊ฐ์ด while ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ for๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ซ๋ค.
Iterator<Element> i = c.iterator();
while(i.hasNext()) {
doSomeThing(i.next());
}
Iterator<Element> i2 = c2.iterator();
while(i.hasNext()) {
doSomeThing(i2.next());
}
- ์ปดํ์ผ๋ ์๋๊ณ ์คํ๋ ์๋์ง๋ง ๊ธฐ๋ํ ๊ฒฐ๊ณผ๊ฐ ๋์ถ๋์ง ์๋๋ค.
- for๋ฌธ์ ํฌํจํ for-each๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ปดํ์ผ ํ์์ ์ก์์ค๋ค. (๋ฐ๋ณต์์ ์ ํจ๋ฒ์๊ฐ for๋ฌธ์ ์ข ๋ฃ์ ํจ๊ป ๋๋๊ธฐ ๋๋ฌธ์ด๋ค.)
- ๋ฉ์๋๋ฅผ ์๊ฒ ์ ์งํ๊ณ ํ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ง์คํ๋ ๊ฒ์ด๋ค.
- ํ ๋ฉ์๋์์ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๋ค๋ฉด ๊ทธ์ค ํ ๊ธฐ๋ฅ๊ณผ๋ง ๊ด๋ จ๋ ์ง์ญ๋ณ์๋ผ๋ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ์ฝ๋์์ ์ ๊ทผํ ์ ์์ ๊ฒ์ด๋ค.
- ๋จ์ํ ๋ฉ์๋๋ฅผ ๊ธฐ๋ฅ๋ณ๋ก ์ชผ๊ฐ๋ฉด ๋๋ค.