์๊ฐ ๋์
Do it! ์๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฌธ
๊ณต๋ถ ๋ชฉํ
- java ๋ณต์ต (1)
- ํ๋ถ ๋ ์๊ฐํ๋ java ์ธ์ด ๊ธฐ๋ณธ ๋ณต์ต
- ๋ณต์ต ๋ด์ฉ : ์๋ฃํ, ์ฐ์ฐ์, ์ ์ด๋ฌธ, ํด๋์ค์ ๊ฐ์ฒด
- java ๊ณต๋ถ (2)
- ํ๋ถ ๋ ์๊ฐํ์ผ๋ ๋์ถฉ ๊ณต๋ถํ๊ณ ๋์ด๊ฐ๋ ๋ถ๋ถ ๋ณต์ต
- ๋ณต์ต ๋ด์ฉ
- ํด๋์ค์ ๊ฐ์ฒด : ์ธํฐํ์ด์ค, ์์ฑ์
- this ์์ฝ์ด
- ์ฑ๊ธํค ํจํด (static ์์ฉ) => ์ฌ๊ธฐ๊น์ง ํด๋น ๊ฒ์๋ฌผ(~197p)
- ArrayList
- ์์๊ณผ ๋คํ์ฑ : super, ๋ค์ด์บ์คํ , instanceof
- ์ถ์ ํด๋์ค
- ์ธํฐํ์ด์ค์ ๋คํ์ฑ
- java jdk ๊ณต๋ถ
- ๊ธฐ๋ณธ ํด๋์ค (Object, String, Wrapper, Class)
- ์ปฌ๋ ์ ํ๋ ์์ํฌ (์ ๋ค๋ฆญ ๋ฑ)
- ๋ด๋ถ ํด๋์ค, ๋๋ค, ์คํธ๋ฆผ
- ์์ธ์ฒ๋ฆฌ
- ์คํธ๋ฆผ ์ ์ถ๋ ฅ, ์ง๋ ฌํ์ ์ญ์ง๋ ฌํ
JVM
- ์๋ฐ ์ปดํ์ผ์ *.class ํ์ผ ์์ฑ(๋ฐ์ดํธ ์ฝ๋, ์ค๊ฐ๊ธฐ๊ณ์ด) => JRE(Java Runtime Environment;์๋ฐ์คํํ๊ฒฝ)์ด OS์ ๋ง๋ JVM ์์์ *.class ํ์ผ์ ์คํ์ํจ๋ค.
- JIT(Just In Time) ์ปดํ์ผ๋ฌ : ์คํ ์์ ์ ๊ธฐ๊ณ์ด๋ฅผ ์์ฑํ๋, ๊ฐ์ ์ฝ๋๊ฐ ๋ฐ๋ณต๋๋ฉด ์ด์ ์ ๋ง๋ ๊ธฐ๊ณ์ด๋ฅผ ์ฌ์ฌ์ฉํ๋ค. (์คํ ์๋ ์์น)
์๋ฃํ ์๋ ๋ณ์ํ var (java10~)
- ์ง์ญ ๋ณ์ ์๋ฃํ ์ถ๋ก (local variable type inference)์ ์ฌ์ฉํ์ฌ ํน์ ์๋ฃํ ์์ด var type์ผ๋ก ๋ณ์ ์ ์ธ์ด ๊ฐ๋ฅํ๋ค.
- ๋์ ๋ฐฉ์ : ๋ณ์์ ๋์ ๋๋ ์๋ฃ๋ก ์ปดํ์ผ๋ฌ๊ฐ ์ถ์ธก
- ์ง์ญ ๋ณ์๋ก๋ง ๊ฐ๋ฅํ๋ค.
์์ ์ ์ธ
final
์ฌ์ฉํ์ฌ ์์ ์ ์ธ
๋ฆฌํฐ๋ด
- ๋ณ์์ ๋์ ๋๋ ๊ฐ์ ๋ถ๋ฅด๋ ์ฉ์ด์ธ ๋ฏ. ๋ฆฌํฐ๋ด ํน์ ๋ฆฌํฐ๋ด ์์๋ผ๊ณ ๋งํ๋ค.
- ๋์ ๋ฐฉ์ : ํ๋ก๊ทธ๋จ ์์ ์ ์์ ํ(constant pool)์ ๋ก๋ฉ๋ ํ ๋ณ์์ ๋ณต์ฌ.
switch case
case 1 : case 3 : case 5 : ... : day = 31;
break;
case 4 : case 6 : case 9 : case 11 : day = 30;
break;
case 2 : day = 28;
break;
- ์ค์ ๋ก ์ธ ์ผ์ ์๊ฒ ๋ค๋ง ์ด๋ ๊ฒ case๋ฅผ ๋์ดํ๋ ์ค์์น ๋ฌธ๋ ๊ฐ๋ฅ.. ใ ใ ใ
- java7 ~ case๊ฐ์ ๋ฌธ์์ด ์ฌ์ฉ ๊ฐ๋ฅ (equals() ์์จ๋ ๋จ)
์ธ์คํด์ค (์ธ์คํด์ค ๋ณ์)
- ํด๋์ค๋ผ๋ ํ์์ ํด๋์ค ์์ฑ์๋ก ์์ฑ๋ ๊ฐ์ฒด
- ๋์ ์๋ฆฌ
- ํด๋์ค ์์ฑ์๋ฅผ ํ๋ ํธ์ถํ๋ฉด ์ธ์คํด์ค๊ฐ ํ์ ์์ฑ
- ์ง์ญ๋ณ์ studentAhn์ ์์ฑ๋ ์ธ์คํด์ค ๋์ => ์คํ ๋ฉ๋ชจ๋ฆฌ์ ์์ฑ๋ ์ง์ญ ๋ณ์ studentAhn์ ์ธ์คํด์ค๊ฐ ์์ฑ๋ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๋์
- this๋ฅผ ํตํด ์ค์ค๋ก๋ฅผ ๊ฐ๋ฆฌํฌ ์ ์๋ค.
ํด๋์ค ๋ด๋ถ์ static ๋ณ์
- ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋๋ง๋ค ์๋ก ์์ฑ๋๋๊ฒ ์๋๋ผ, ํ๋ก๊ทธ๋จ์ด ์คํ๋์ด ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ์ ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด 1ํ ํ ๋น๋๊ณ , ๋ชจ๋ ์ธ์คํด์ค๊ฐ ๊ทธ ๊ฐ์ ๊ณต์ ํ๋ค.
- ์ธ์คํด์ค๊ฐ ์๋ ํด๋์ค ์ด๋ฆ์ผ๋ก ์ง์ ์ฐธ์กฐํด์ผ ํ๋ค.
- ์ด๋ฌํ ์ง์ ์ฐธ์กฐ๋ฅผ ์ง์ํ๊ณ ์ ํด๋์ค ๋ฉ์๋(=static ๋ฉ์๋)๊ฐ ์กด์ฌ, ๊ธฐ์กด์ static ๋ณ์๋ฅผ private์ผ๋ก ๋ฐ๊พธ๊ณ
public static int getSerialNum()
์ด๋ฐ ์์ผ๋ก getter setter๋ฅผ ๋ฉ์๋๋ฅผ ๋ฃ์ด์ค๋ค. - ์ ํจ ๋ฒ์ : ํ๋ก๊ทธ๋จ ์์ญ ์ค ๋ฐ์ดํฐ ์์ญ์ ์์ฑ
์ฑ๊ธํค ํจํด
- ์ธ์คํด์ค๋ฅผ ๋จ ํ๋๋ง ์์ฑํ๋ ๋์์ธ ํจํด
- ๊ตฌํ
-
- private ์์ฑ์ ๋ง๋ค๊ธฐ
- ์ธ๋ถ ํด๋์ค์์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ๋ชปํ๋๋ก
-
- ํด๋์ค ๋ด๋ถ์ static์ผ๋ก ์ ์ผํ ์ธ์คํด์ค ์์ฑ
- ํ๋ก๊ทธ๋จ ์ ์ฒด์์ ์ฌ์ฉํ ํ๋์ ์ธ์คํด์ค ์์ฑ
-
- ์ธ๋ถ์์ ์ฐธ์กฐํ ์ ์๋ public ๋ฉ์๋ ์์ฑ
- private์ผ๋ก ์ ์ธํ ์ ์ผํ ์ธ์คํด์ค๋ฅผ ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋๋ก public ๋ฉ์๋ ์์ฑํ์ฌ ์ ์ผํ๊ฒ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๋ฐํํด์ค๋ค. ๋จ, ์ธ์คํด์ค ๋ฐํ ๋ฉ์๋๋ ๋ฐ๋์ static์ผ๋ก ์ ์ธํด์ผ ํ๋ค. (์ธ์คํด์ค ์์ฑ๊ณผ ์๊ด์์ด ํธ์ถํ ์ ์์ด์ผ ํ๋๊น)
-
public class Company {
private static Company instance = new Company();
private Company() { }
...
public static Company getInstance() {
if(instance == null) {
instance = new Company();
}
return instance;
}
}
- ์ค์ ๋ก ์ฌ์ฉํ๋ ์ฝ๋ ๋ง๋ค๊ธฐ
public class CompanyTest() {
public static void main(String[] args) {
Company myCompany1 = Company.getInstance();
Company myCompany2 = Company.getInstance();
System.out.println(myCompany1 == myCompany2);
}
}
- ์ฝ์์ true๊ฐ ์ถ๋ ฅ๋จ์ ํ์ธํ ์ ์๋ค.