Submit Search
Java(1/4)
1 like
938 views
H
handfoot
Java(1/4)
Technology
Read more
1 of 23
Download now
Downloaded 19 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
More Related Content
PDF
Java(2/4)
handfoot
ย
PDF
Java lambda
Hyosang Hong
ย
PDF
Java class
Hyosang Hong
ย
PDF
Java ๊ธฐ์ด
Hyosang Hong
ย
PDF
Java ๋ณ์์๋ฃํ
Hyosang Hong
ย
PDF
Java extends
Hyosang Hong
ย
PDF
Java inner class
Hyosang Hong
ย
PDF
Java programming pdf
Ji Hoon Lee
ย
Java(2/4)
handfoot
ย
Java lambda
Hyosang Hong
ย
Java class
Hyosang Hong
ย
Java ๊ธฐ์ด
Hyosang Hong
ย
Java ๋ณ์์๋ฃํ
Hyosang Hong
ย
Java extends
Hyosang Hong
ย
Java inner class
Hyosang Hong
ย
Java programming pdf
Ji Hoon Lee
ย
What's hot
(19)
PPTX
ํ์ด์ฌ ๋ณ๋ ฌํ๋ก๊ทธ๋๋ฐ
Yong Joon Moon
ย
PDF
์๋ฐ์์ null์ ์์ ํ๊ฒ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
Sungchul Park
ย
PDF
Anatomy of Realm
Leonardo YongUk Kim
ย
PPTX
Jdk(java) 7 - 5. invoke-dynamic
knight1128
ย
PPTX
แแ กแแ ตแแ ฅแซ แแ กแทแแ ฎ แแ ตแแ ขแแ กแแ ต
Yong Joon Moon
ย
PDF
Java ๊ฐ์์๋ฃ ed11
hungrok
ย
PDF
Realm ์ฝ๋ฉ์นดํ - ์ด์ข ์ฐฌ
Lee-Jong-Chan
ย
PDF
02 realm ๋ชจ๋ธ & ๊ด๊ณ
Lee-Jong-Chan
ย
PDF
Secrets of the JavaScript Ninja - Chapter 3. Functions are Fundamental
Hyuncheol Jeon
ย
PDF
Class Loader_Wh apm
์์
ย
PDF
์ฃผ๋์ด ๊ฐ๋ฐ์๋ ์ดํด ํ ์ ์๋ Go - Scope ํธ
Darion Kim
ย
PDF
Java null survival guide
Sungchul Park
ย
PPTX
์๋ฐ์คํฐ๋ 3 2
jangpd007
ย
PDF
Objective-C Runtime Programming Guide
Sung-Kwan Kim
ย
PDF
Introduction to Fork Join Framework_SYS4U I&C
sys4u
ย
PDF
[D2 CAMPUS] ์๋๋ก์ด๋ ์คํ์์ค ์คํฐ๋์๋ฃ - Http Request
NAVER D2
ย
PPTX
แแ กแแ ตแแ ฅแซ แแ ณแฏแ แ กแแ ณแแ ณ แแ ตแแ ขแแ กแแ ต
Yong Joon Moon
ย
PDF
Runtime Data Areas_Wh apm
์์
ย
PDF
์ ์ง๋ณด์ ๊ฐ๋ฅํ ๊ฐ๋ฐ ์์น
Hyosang Hong
ย
ํ์ด์ฌ ๋ณ๋ ฌํ๋ก๊ทธ๋๋ฐ
Yong Joon Moon
ย
์๋ฐ์์ null์ ์์ ํ๊ฒ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
Sungchul Park
ย
Anatomy of Realm
Leonardo YongUk Kim
ย
Jdk(java) 7 - 5. invoke-dynamic
knight1128
ย
แแ กแแ ตแแ ฅแซ แแ กแทแแ ฎ แแ ตแแ ขแแ กแแ ต
Yong Joon Moon
ย
Java ๊ฐ์์๋ฃ ed11
hungrok
ย
Realm ์ฝ๋ฉ์นดํ - ์ด์ข ์ฐฌ
Lee-Jong-Chan
ย
02 realm ๋ชจ๋ธ & ๊ด๊ณ
Lee-Jong-Chan
ย
Secrets of the JavaScript Ninja - Chapter 3. Functions are Fundamental
Hyuncheol Jeon
ย
Class Loader_Wh apm
์์
ย
์ฃผ๋์ด ๊ฐ๋ฐ์๋ ์ดํด ํ ์ ์๋ Go - Scope ํธ
Darion Kim
ย
Java null survival guide
Sungchul Park
ย
์๋ฐ์คํฐ๋ 3 2
jangpd007
ย
Objective-C Runtime Programming Guide
Sung-Kwan Kim
ย
Introduction to Fork Join Framework_SYS4U I&C
sys4u
ย
[D2 CAMPUS] ์๋๋ก์ด๋ ์คํ์์ค ์คํฐ๋์๋ฃ - Http Request
NAVER D2
ย
แแ กแแ ตแแ ฅแซ แแ ณแฏแ แ กแแ ณแแ ณ แแ ตแแ ขแแ กแแ ต
Yong Joon Moon
ย
Runtime Data Areas_Wh apm
์์
ย
์ ์ง๋ณด์ ๊ฐ๋ฅํ ๊ฐ๋ฐ ์์น
Hyosang Hong
ย
Ad
Similar to Java(1/4)
(20)
PPTX
[HaU] ์ ์ ๊ธฐ์ ๋ฉด์ ์ค๋น java
์ ๋ฆฌ ํ
ย
PPTX
์ด๊ฒ์ด ์๋ฐ๋ค Chap.11 ๊ธฐ๋ณธ API ํด๋์ค(java)(KOR)
MIN SEOK KOO
ย
PDF
Java_05 class
Hong Hyo Sang
ย
PDF
Java advancd ed10
hungrok
ย
PPTX
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ
์ฉํธ ์ต
ย
PPTX
[์๋ฐ์นดํ] ์๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (2017)
์ฉํธ ์ต
ย
PDF
Java stream v0.1
Hyosang Hong
ย
PDF
Java stream v0.1
Hyosang Hong
ย
PDF
2023.05.01 แแ กแฏแแ ญ แแ กแ แ ญ : ์๋ฐ์ ๊ธฐ์ด
HONG YONG JUN
ย
PDF
Java_01 ๊ธฐ์ด
Hong Hyo Sang
ย
PPTX
Just java
Jong Wook Kim
ย
PDF
Java the good parts
Sungchul Park
ย
PPT
์๋ฐ์ผ ๋์ PPT
JinKyoungHeo
ย
PPTX
์ด๊ฒ์ด ์๋ฐ๋ค Chap. 6 ํด๋์ค(CLASS)(KOR)
MIN SEOK KOO
ย
PDF
Java tutorial
ssuser34b989
ย
PPTX
์๋ฐ ์คํฐ๋(6๊ธฐ) 2
Jina Lee
ย
PDF
Java_02 ๋ณ์์๋ฃํ
Hong Hyo Sang
ย
PDF
Effective java
Haeil Yi
ย
PDF
5แแ กแผ แแ ขแจแแ ฆแแ ชแแ ณแฏแ แ ขแแ ณ
SeoYeong
ย
PDF
SpringCamp 2013 : About Jdk8
Sangmin Lee
ย
[HaU] ์ ์ ๊ธฐ์ ๋ฉด์ ์ค๋น java
์ ๋ฆฌ ํ
ย
์ด๊ฒ์ด ์๋ฐ๋ค Chap.11 ๊ธฐ๋ณธ API ํด๋์ค(java)(KOR)
MIN SEOK KOO
ย
Java_05 class
Hong Hyo Sang
ย
Java advancd ed10
hungrok
ย
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ณธ
์ฉํธ ์ต
ย
[์๋ฐ์นดํ] ์๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (2017)
์ฉํธ ์ต
ย
Java stream v0.1
Hyosang Hong
ย
Java stream v0.1
Hyosang Hong
ย
2023.05.01 แแ กแฏแแ ญ แแ กแ แ ญ : ์๋ฐ์ ๊ธฐ์ด
HONG YONG JUN
ย
Java_01 ๊ธฐ์ด
Hong Hyo Sang
ย
Just java
Jong Wook Kim
ย
Java the good parts
Sungchul Park
ย
์๋ฐ์ผ ๋์ PPT
JinKyoungHeo
ย
์ด๊ฒ์ด ์๋ฐ๋ค Chap. 6 ํด๋์ค(CLASS)(KOR)
MIN SEOK KOO
ย
Java tutorial
ssuser34b989
ย
์๋ฐ ์คํฐ๋(6๊ธฐ) 2
Jina Lee
ย
Java_02 ๋ณ์์๋ฃํ
Hong Hyo Sang
ย
Effective java
Haeil Yi
ย
5แแ กแผ แแ ขแจแแ ฆแแ ชแแ ณแฏแ แ ขแแ ณ
SeoYeong
ย
SpringCamp 2013 : About Jdk8
Sangmin Lee
ย
Ad
Java(1/4)
1.
Java(1/4) taesoo.kim87@gmail.com ๊นํ์
2.
Part1. Basic
3.
1) ์๋ฐ 1 ๊ฐ์ ์๋ฐ
OOP(๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ)์ธ์ด ์๋ฐ ํน์ง ์บก์ํ/์์/๋คํ์ฑ/ํจ์์ ์คํ์ผ์ฝ๋ฉ์ง์/๋ฉ๋ชจ๋ฆฌ๊ด๋ฆฌ:GC SE๋ฒ์ JDKํ์, ๊ธฐ๋ณธ์๋์ , ๊ฐ๋ฐ๋๊ตฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌAPI์ ์ EE๋ฒ์ ๋ถ์ฐํ๊ฒฝ(NW,Internet)์ Server์ฉ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌAPI์ ์ ๊ฐ์ ๋ฉํฐ์ค๋ ๋๊ตฌํ/๋์ ๋ก๋ฉ/์คํ๋ผ์ด๋ธ๋ฌ๋ฆฌ JVM ์๋ฐํ๋ก๊ทธ๋จ์ด OS์์ ์คํ๋๋๋ก ํ๋ ค๋ฉด ํ์. ์ปดํ์ผ๋จ๊ณ ์์คํ์ผ(.java)->๋ฐ์ดํธ์ฝ๋ํ์ผ(.class) ->jvm๊ตฌ๋->OS์ ๋ง๋ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ->์คํ
4.
1 ๊ฐ์ 2)ํ๊ฒฝ๊ตฌ์ถ, ๊ธฐ๋ณธ๊ท์น,
๋ฌธ์๋ฆฌํฐ๋ด ํ๊ฒฝ๊ตฌ์ถ JRE JVM+Std Class Lib JDK JRE+๊ฐ๋ฐ๋๊ตฌ ํ๊ฒฝ๋ณ์1 JAVA_HOME์ jdk๋๋ ํ ๋ฆฌ๊ฐ ์ค์ ํ๊ฒฝ๋ณ์2 Path์ %JAVA_HOME%bin ์ถ๊ฐ API Docs http://docs.oracle.com/javase/8/docs/api/ ๊ธฐ๋ณธ๊ท์น ์ฃผ์ํํ // ๋๋ /* */ ๋ณ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์๋ฏธ, int a; ํํ, ๋/์๋ฌธ์๊ตฌ๋ถ ๋ฌธ์๋ฆฌํฐ๋ด ๋ฌธ์๋ฆฌํฐ๋ด(ํ๊ธฐ) t n r " ' u16์ง์ ๋ฌธ์๋ฆฌํฐ๋ด(๊ฐ) ์ํํญ ์ค๋ฐ๊ฟ ๋ฆฌํด ํฐ๋ฐ์ดํ ์์๋ฐ์ดํ ์ฌ๋ฌ์ฌ 16์ง์์ ๋์ฝ๋
5.
1 ๊ฐ์ 3)ํ์ ๋ณํ, ์ฐ์ฐ์ ์์
byte->int ํน์ ๊ทธ ์ญ์ผ๋ก ๋ณํํ๋ ํ์. ์ข ๋ฅ ์๋(๋ฌต์์ ) / ๊ฐ์ (๋ช ์์ ) ์๋ํ์ ๋ณํ (ํ๋ก๋ชจ์ ) ํฐํ์ =์์ํ์ ์ ๊ฒฝ์ฐ. [ byte(1) < short(2) < int(4) < long(8) < float(4) < double(8) ] ๊ฐ์ ํ์ ๋ณํ (์บ์คํ ) ์์ํ์ = (์์ํ์ )ํฐํ์ ์ ๊ฒฝ์ฐ. ์ฐ์ฐ์์ฐ์ ์์ (๋->๋ฎ) ์ฆ๊ฐ,๋ถํธ,~, !, ์ฐ์ , ์ฌํํธ, ๋น๊ต, ๋ ผ๋ฆฌ, ์กฐ๊ฑด, ๋์ ๋ฌธ์์ด ๋น๊ต ์ค๋ฅ ์ String str1="A"; String str2="A"; String str3=new String("A"); str1==str2 //true, str2==str3 //false ์๋ฐ๋ ๋ฌธ์์ด ๋ฆฌํฐ๋ด์ด ๋์ผํ ๋, ๋์ผํ String๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ง๋ง, new์ฐ์ฐ์๋ก ์ ์ฑ๋ ๊ฒฝ์ฐ, ์๋ก์ด String๊ฐ์ฒด์ ๋ฒ์ง๊ฐ์ ๊ฐ ๊ฒ๋๋ฉฐ, ==๋น๊ต์ฐ์ฐ์ ๋ณ์๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฒ์ง๋ฅผ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํจ
6.
1 ๊ฐ์ 4)์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ if๋ฌธ
ํํ if(์กฐ๊ฑด์){true์ผ๊ฒฝ์ฐ;}false์ผ๊ฒฝ์ฐ; if-else๋ฌธ ํํ if(์กฐ๊ฑด์){true์ผ๊ฒฝ์ฐ;}else{false์ผ๊ฒฝ์ฐ;} if-elseif๋ฌธ ํํ if(์กฐ๊ฑด์A){A๊ฐ true์ผ๊ฒฝ์ฐ;}else if(์กฐ๊ฑด์B){B๊ฐ true์ผ๊ฒฝ์ฐ;}๊ทธ ์ธ์๊ฒฝ์ฐ; switch๋ฌธ ํํ switch(๋ณ์){ case ๊ฐ1:๋ณ์==๊ฐ1์ธ๊ฒฝ์ฐ;break; case ๊ฐ2:๋ณ์==๊ฐ2์ธ๊ฒฝ์ฐ;break; default:๊ฐ1๋,๊ฐ2๋ ์๋๊ฒฝ์ฐ;} for๋ฌธ ํํ for(์ด๊ธฐํ์;์กฐ๊ฑด์;์ฆ๊ฐ์){์กฐ๊ฑด์์ดtrue์ธ๊ฒฝ์ฐ๋ฐ๋ณต;} while๋ฌธ ํํ while(์กฐ๊ฑด์){์กฐ๊ฑด์์ดtrue์ธ๊ฒฝ์ฐ๋ฐ๋ณต;} do-while๋ฌธ ํํ do{์ฒซ1ํ๋ฌด์กฐ๊ฑด์คํํ ์กฐ๊ฑด์์ดtrue์ธ๊ฒฝ์ฐ๋ฐ๋ณต;}while(์กฐ๊ฑด์); continue๋ฌธ 1ํ skip break๋ฌธ ๊ฐ์ฅ๊ฐ๊น์ด๋ฐ๋ณต๋ฌธ์ ํ์ถ
7.
Part2. Memory
8.
2 Memory 1)ClassLoader ๊ฐ์ ์๋ฐ๋ ํด๋์ค๋ก๋๋ฅผ
์ฌ์ฉํ๊ณ , ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ์ธ์ JVM์ผ๋ก ๋ก๋ฉํ๊ณ , ์ธ๋ก๋ฉํ๋์ง์ ๋ํ ํน์ ํ ๊ท์น์ ๊ฐ๊ณ ์๋ค. ์ด๋ฌํ ๊ท์น์ ์ดํดํด์ผ, ํด๋์ค๋ก๋๋ฅผ ์ข ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๊ฐ๋ฐ์๊ฐ ์ง์ ์์ ๋ง์ ์ปค์คํ ํด๋์ค๋ก๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋๋ค. ์ฌ์ฉ์์ ClassLoader cl = . . . // ClassLoader์ ๊ฐ์ฒด๋ฅผ ์์ฑ Class klass = null; try { klass = cl.loadClass("java.util.Date"); } catch(ClassNotFoundException ex) { // ํด๋์ค๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ ๊ฒฝ์ฐ์ ๋ฐ์ํ๋ค. ex.printStackTrace(); } ๊ด๊ณ๋
9.
2 Memory 2)๋์ ๋ก๋ฉ ๊ฐ์ ์๋ฐ๋ ๋์ ์ผ๋ก
ํด๋์ค๋ฅผ ์ฝ์ด์จ๋ค. ์ฆ, ๋ฐํ์์ ๋ชจ๋ ์ฝ๋๊ฐ JVM์ ๋งํฌ๋๋ค. ๋ชจ๋ ํด๋์ค ๋ ๊ทธ ํด๋์ค๊ฐ ์ฐธ์กฐ๋๋ ์๊ฐ์ ๋์ ์ผ๋ก JVM์ ๋งํฌ๋๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉ๋๋ค. ์๋ฐ์ ๋ฐํ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ([JDK ์ค์น ๋๋ ํ ๋ฆฌ]/jre/lib/rt.jar) ์ญ์ ์์ธ๊ฐ ์๋๋ค. ์ด๋ฌํ ๋์ ์ธ ํด๋ ์ค ๋ก๋ฉ์ ์๋ฐ์ ํด๋์ค๋ก๋ ์์คํ ์ ํตํด์ ์ด๋ฃจ์ด์ง๋ฉฐ, ์๋ฐ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ํด๋ ์ค๋ก๋๋ java.lang.ClassLoader๋ฅผ ํตํด์ ํํ๋๋ค. JVM์ด ์์๋๋ฉด, ๋ถํธ์คํธ๋ฉ (bootstrap) ํด๋์ค๋ก๋๋ฅผ ์์ฑํ๊ณ , ๊ทธ ๋ค์์ ๊ฐ์ฅ ์ฒซ๋ฒ์งธ ํด๋์ค์ธ Object๋ฅผ ์์คํ ์ ์ฝ ์ด์จ๋ค. ๋ฐํ์์ ๋์ ์ผ๋ก ํด๋์ค๋ฅผ ๋ก๋ฉํ๋ค๋ ๊ฒ์ JVM์ด ํด๋์ค์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ง ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฆ, JVM์ ํด๋์ค์ ๋ฉ์๋, ํ๋, ์์๊ด๊ณ ๋ฑ์ ๋ํ ์ ๋ณด๋ฅผ ์์ง ๋ชปํ๋ค. ๋ฐ ๋ผ์, ํด๋์ค๋ก๋๋ ํด๋์ค๋ฅผ ๋ก๋ฉํ ๋ ํ์ํ ์ ๋ณด๋ฅผ ๊ตฌํ๊ณ , ๊ทธ ํด๋์ค๊ฐ ์ฌ๋ฐ๋ฅธ์ง๋ฅผ ๊ฒ์ฌํ ์ ์์ด์ผ ํ๋ค. ๋ง์ฝ ์ด๊ฒ์ ํ ์ ์๋ค๋ฉด, JVM์ .class ํ์ผ์ ๋ฒ์ ์ด ์ผ์นํ์ง ์์ ์ ์์ผ ๋ฉฐ, ๋ํ ํ์ ๊ฒ์ฌ๋ฅผ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ด๋ค. JVM์ ๋ด๋ถ์ ์ผ๋ก ํด๋์ค๋ฅผ ๋ถ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์์ผ๋ฉฐ, JDK 1.1๋ถํฐ๋ ๊ฐ๋ฐ์๋ค์ด ๋ฆฌํ๋ ์ (Reflection)์ ํตํด์ ์ด๋ฌํ ํด๋ ์ค์ ๋ถ์์ ํ ์ ์๋๋ก ํ๊ณ ์๋ค. ๋ก๋ํ์ ๋์ ๋ก๋ฉ (load-time dynamic loading) ํด๋์ค๋ฅผ ๋ก๋ฉํ๋ ๊ณผ์ ์์ ํ์ํ ํด๋์ค. ํ๋์ ํด๋์ค๋ฅผ ๋ก๋ฉํ๋ ๊ณผ์ ์์ ๋์ ์ผ๋ก ํด๋์ค๋ฅผ ๋ก๋ฉํ๋ ๊ฒ์ ๋ก๋ํ์ ๋์ ๋ก๋ฉ์ด๋ผ ๊ณ ํ๋ค. ๋ฐํ์ ๋์ ๋ก๋ฉ (run-time dynamic loading) ํด๋์ค๋ฅผ ๋ก๋ฉํ ๋๊ฐ ์๋ ์ฝ๋๋ฅผ ์คํํ๋ ์๊ฐ์ ํด๋์ค๋ฅผ ๋ก๋ฉํ๋ ๊ฒ์ ๋ฐํ์ ๋์ ๋ก๋ฉ ์ด๋ผ๊ณ ํ๋ค.
10.
2 Memory 3)DataType, ๋ฉ๋ชจ๋ฆฌํ ๋น,
RDA Data-Type ๋ถ๋ฅ Primitive / Reference Primitive Type(๊ธฐ๋ณธํ) ์ ์(byte/char/short/int/long), ์ค์(float/double), ๋ ผ๋ฆฌ(boolean) Reference Type(์ฐธ์กฐํ) ๋ฐฐ์ดํ์ /์ด๊ฑฐํ์ /ํด๋์ค/์ธํฐํ์ด์ค ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ถ๋ฅ Stack , Heap ์ฐธ์กฐํ์ ๋ณ์ Heap์์ญ์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐ ๊ธฐ๋ณธํ์ ๋ณ์ Stack์์ญ์ ๊ฐ ์ ์ฅ Runtime Data Area(RDA) ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์์ java.exe -> JVM์คํ ->OS๊ฐ JVM์ ๋ฉ๋ชจ๋ฆฌ(RDA)ํ ๋น ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ ๋ฉ์๋์์ญ/ํ์์ญ/(n๊ฐ์)์ค๋ ๋ ๋ฉ์๋ ์์ญ class, runtime constant pool, field, method ๋ฐ์ดํฐ, method code, ์์ฑ์ ๋ฑ์ ๋ถ๋ฅ ์ ์ฅ. JVM์ด ์์๋ ๋ ์์ฑ๋๊ณ ๋ชจ๋ ์ค๋ ๋๊ฐ ๊ณต์ ํ๋ ์์ญ ํ ์์ญ ๊ฐ์ฒด,๋ฐฐ์ด์์ฑ ์์ญ. ์์ฑ๋ ๊ฐ์ฒด์ ๋ฐฐ์ด์ด JVM์คํ์์ญ์์ ์ฐธ์กฐ. GC๋ ์ฐธ์กฐ๋์ง ์๋ ๊ฐ์ฒด๋ ์ฐ๋ ๊ธฐ๋ก ์ทจ๊ธํ์ฌ ์ ๊ฑฐ. JVM ์คํ ์์ญ ๊ฐ ์ค๋ ๋๋ง๋ค ํ๋์ฉ ์กด์ฌ. ์ค๋ ๋๊ฐ ์์๋ ๋ ํ ๋น. ๋ฉ์๋ ํธ์ถ๋ง๋ค Frame์ pushํ๊ณ , ๋ฉ์๋๊ฐ ์ข ๋ฃ๋๋ฉด pop์ํ. ํ๋ ์๋ง๋ค ๋ก์ปฌ ๋ณ์ ์ค ํ์ด ์๊ณ ,๊ธฐ๋ณธํ์ /์ฐธ์กฐํ์ ๋ณ์๊ฐ push/pop๋จ.
11.
2 Memory 4)์ฐธ์กฐ๋ณ์๋น๊ต์ null,
String, ๋ฐฐ์ดํ์ ์ฐธ์กฐ๋ณ์ ๋น๊ต์ null ์ฐธ์กฐํ์ ๋ณ์ ๋น๊ต์ฐ์ฐ ์ฐธ์กฐ๋ณ์๊ฐ ==, != ๋ ์ฃผ์๊ฐ ๋น๊ต null ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ง ์์ผ๋ฉด ์ฐธ์กฐ๋ณ์๋ null์ ๋ฐํ, null๊ฐ์ผ๋ก ์ด๊ธฐํ ํ๋ฉด, ์ฐธ์กฐ๋ณ์๋ ์คํ์์ญ์ ์์ฑ๋จ. NullPointerException ์ฐธ์กฐ๋ณ์๊ฐ null๊ฐ์ ๊ฐ์ง๊ณ ์์๋ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์. String equals ์ฌ์ฉ์ : str1.equals(str2); ์ฐธ์กฐ๋ฅผ ์์ ๊ฒฝ์ฐ String๊ฐ์ฒด๊ฐ null๊ฐ์ผ๋, GC์ ์ํด ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐ๋จ. ๋ฐฐ์ด ํ์ ๊ฐ์ ๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ์๊ณต๊ฐ์ ๋์ด์ํค๊ณ index๋ฅผ ๋ถ์ฌ. ์ ์ธ ํ์ [] ๋ณ์; ํ์ ๋ณ์[]; null์ด๊ธฐํ ํ์ [] ๋ณ์=null; ๊ฐ๋ชฉ๋ก ๋ฐฐ์ด ์์ฑ ํ์ [] ๋ณ์={val1, val2,โฆ}; ๋ฐฐ์ด๊ธธ์ด ๋ฐฐ์ด๋ณ์.length; //์ฝ๊ธฐ์ ์ฉ์ด๋ฉฐ, ๊ฐ์ ํ ๋นํ ์ ์์. ๋ฐฐ์ด๊ฐ ๋ณต์ฌ System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length); //oldArr, 0, new Arr, 0, oldArr.length ๋๋ for๋ฌธ์ผ๋ก ๋ณต์ฌ new์ฐ์ฐ์ ์ฌ์ฉ (new์ฐ์ฐ์๋ ๊ฐ์ ์ด๊ธฐํํ๋ฏ๋ก, int๋ฐฐ์ด์์ ๊ฐ ํ ์์ญ์ ์ฐธ์กฐํ๋ฉด 0์ ๋ฐํ) ๋ณ์=new ํ์ []{a,b,c}; ํ์ [] ๋ณ์=new ํ์ [size]; int arr=new int[5]; int[] scores; scores=new int[]{1,2,3};
12.
2 Memory 5)์ปค๋งจ๋๋ผ์ธ์ ๋ ฅ,์ด๊ฑฐํ์ ,Calendarํด๋์ค ์ปค๋งจ๋ ๋ผ์ธ
์ ๋ ฅ String[] args={}; ์ด ๊ฐ์ด ์ค์ ๋๋ฉด mian()๋ฉ์๋ ํธ์ถ์ ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ฌ๋จ. ์ด๊ฑฐ ํ์ ๊ฐ์ ํ์ ๋ ๊ฐ์ ๊ฐ๋ ๋ฐ์ดํฐ ํ์ (enum) ์ ์ธ์์ public enum week{mon, tue, wed, thu, fri, sat, sun} ์ฌ์ฉ์์ week thisWeek; //์ ์ธ thisWeek.mon; //ํธ์ถ week thisWeek=week.sun;//๊ฐ์ ๊ฐ์ฒด ์ฐธ์กฐ week birth=null; Calendar ํด๋์ค ์ ์ธ์์ Calendar now = Calendar.getInstance(); ์ฌ์ฉ์์ int year=now.get(Calendar.YEAR);
13.
2 Memory 6)์ด๊ฑฐ๊ฐ์ฒด ๋ฉ์๋ ๋ฆฌํดํ์
๋ฉ์๋ //์ค๋ช String name() //๋ฌธ์์ด ๋ฆฌํด week today = week.sun; String name=today.name();//sun ๋ฆฌํด int ordinal()//์ด๊ฑฐ ๊ฐ์ฒด์ ์๋ฒ(0๋ฒ๋ถํฐ)์ ๋ฆฌํด week today=week.sun; int ordinal = today.ordinal();//sun์ ์ธ๋ฑ์ค 6์ ๋ฆฌํด int compareTo() //์ด๊ฑฐ๊ฐ์ฒด๋ฅผ ๋น๊ตํด์ ์๋ฒ์ฐจ์ด๋ฅผ ๋ฆฌํด week day1=week.mon; week day2=week.wed; int result1=day1.compareTo(day2);//-2 int result2=day2.compareTo(day1);//-2 ์ด๊ฑฐ ํ์ valuesOf(String name)//์ฃผ์ด์ง ๋ฌธ์์ด์ ์ด๊ฑฐ ๊ฐ์ฒด๋ฅผ ๋ฆฌํด week day=week.valueOf("sat");//day๊ฐ week.sat๋ฅผ ์ฐธ์กฐํ๊ฒ๋จ
14.
Part3. OOP
15.
3 OOP 1)OOP ๊ฐ๊ด ๊ฐ์ฒด ์ค์ฌํ๊ฑฐ๋
์ถ์ํ ํ ์ ์์ผ๋ฉฐ, ์์ฑ์ ๊ฐ์ง๊ณ ๋ค๋ฅธ ๊ฒ๊ณผ ์๋ณ๋๋ ๊ฒ. (symbolic์ด ๊ฐ๋ฅํ ๊ฒ. ์๋ฅผ ๋ค๋ฉด ๋ํ๋ฏผ๊ตญ์ ์ถ์ํํด์ ํ๊ทน๊ธฐ๋ก ํํ) ๊ฐ์ฒด์ ํน์ง ์์ฑ๊ณผ ๋์(ํ๋์ ๋ฉ์๋)์ ์ง๋. ๊ฐ์ฒด์ ์ํธ์์ฉ ๋ฉ์๋์ ํธ์ถ๊ณผ ๋งค๊ฐ๋ณ์ ์ ๋ฌ๋ก ์ฑ๋ฆฝ ๊ฐ์ฒด๊ด๊ณ ์ข ๋ฅ ์งํฉ/์ฌ์ฉ/์์ ์ฌ์ฉ๊ด๊ณ ๊ฐ์ฒด๊ฐ ๋ฉ์๋ ํธ์ถ์ ์ํธ์์ฉ ์์๊ด๊ณ ์์๊ฐ์ฒด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์๊ฐ์ฒด๋ฅผ ์์ฑ ์งํฉ๊ด๊ณ ์๋์ฐจ๋ ์์ง/ํ์ด์ด/ํธ๋ค๋ฑ๊ณผ ์งํฉ๊ด๊ณ OOP์ ํน์ง ์บก์ํ/์์/๋คํ์ฑ ์บก์ํ ๊ฐ์ฒด์ ํ๋/๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ๊ณ , ์ค์ ๊ตฌํ๋ด์ฉ์ ๊ฐ์ถค ์์ ์์๊ฐ์ฒด์ ํ๋/๋ฉ์๋๋ฅผ ํ์๊ฐ์ฒด๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ํจ. ๋คํ์ฑ (Polymorphism) ๊ฐ์ ํ์ ์ด์ง๋ง ์คํ๊ฒฐ๊ณผ๊ฐ ๋ค์ํ ๊ฐ์ฒด๋ฅผ ์ด์ฉํ ์ ์๋ ์ฑ์ง. ๊ฐ์ฒด์ ํด๋์ค ํด๋์ค(์ค๊ณ๋)๋ฅผ ์ด์ฉํ์ฌ ๋ค์ํ ์ธ์คํด์ค(๊ฐ์ฒด;๊ฑด๋ฌผ ๋ฑ)๋ฅผ ์์ฑํ ์ ์์. ํด๋์ค ๊ตฌ์ฑ๋ฉค๋ฒ ํ๋/์์ฑ์/๋ฉ์๋
16.
3 OOP 2)Class ํ๋ ์ํ/๊ณ ์ ์ ๋ณด/๊ฐ์ฒด๋ฅผ
์ ์ฅ ์์ฑ์ new์ฐ์ฐ์๋ก ํธ์ถ. ํ๋์ด๊ธฐํ์ ๋ฉ์๋ ํธ์ถ๋ก ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ ์ค๋น. ๋ฆฌํดํ์ ์ด ์์. ๋ฉ์๋ ๊ฐ์ฒด๊ฐ ๋ฐ์ดํฐ ์ ๋ฌ ์๋จ์ผ๋ก ์ฌ์ฉ. ํ๋ ์ด๊ธฐํ public class korean{ String nation="ํ๊ตญ"; } ์์ฑ์์์ ํ๋ ์ด๊ธฐํ pblic korean(String m){ nation=m; } ์์ฑ์ ์ค๋ฒ๋ก๋ฉ (OverLoading) ์ด๋ฆ์ ๊ฐ๊ณ ๋งค๊ฐ๋ณ์๊ฐ ๋ค๋ฅธ ์ฌ๋ฌ ์์ฑ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ ๋งํจ. ์์ฑ์์์ this ๋ค๋ฅธ์์ฑ์๋ฅผ ํธ์ถํ๋ ์ฝ๋. ์์ฑ์ ์ฒซ์ค์์๋ง ํ์ฉ. ์๊ทธ๋์ณ ๋ฉ์๋ ์ ์ธ๋ถ. String toString(int a) ๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ ๋์ผ ํด๋์ค ๋ด ๋์ผ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์๊ทธ๋์ณ๋ฅผ ๋ฌ๋ฆฌํ์ฌ ์ฌ๋ฌ ๊ฐ ์ ์ธ. ์ธ์คํด์ค ๋ฉค๋ฒ ๊ฐ์ฒด(์ธ์คํด์ค)์์ฑํ ์ฌ์ฉํ ์ ์๋ ์ธ์คํด์คํ๋์ ์ธ์คํด์ค๋ฉ์๋๋ฅผ ๋งํจ. ์ธ์คํด์ค ๋ด์์ this ๋ด๋ถ๋ฉค๋ฒ์ ์ ๊ทผํ๊ธฐ ์ํด this๋ฅผ ์ฌ์ฉ
17.
3 OOP 3)์ ์ ๋ฉค๋ฒ ,
Singleton ์ ์ ๋ฉค๋ฒ/static ์ ์ ๋ฉค๋ฒ (ํด๋์ค๋ฉค๋ฒ) ๊ฐ์ฒด ์์ฑ์์ด ์ฌ์ฉ๊ฐ๋ฅํ ํ๋/๋ฉ์๋ ์ ์ ํ๋ ๋ฉค๋ฒ ์ ์ธ static ํ์ ํ๋; ๋๋ static ํ์ ํ๋=a; ์ ์ ํ๋ ๋ฉ์๋ ์ ์ธ static int staticMethod(int a){return a;} ์ ์ ๋ฉ์๋ ์ฌ์ฉ ํด๋์ค.๋ฉ์๋(๋งค๊ฐ๋ณ์); ์ ์ ์ด๊ธฐํ ๋ธ๋ก ์ ์ ํ๋๋ฅผ ์ด๊ธฐํ ํ ๋ ์ฌ์ฉ. static{info=company+model;} ์ ์ ๋ฉ์๋/๋ธ๋ก ์ ์ธ ์ ์ฃผ์์ ์ ์ ๋ฉค๋ฒ๋ ๊ฐ์ฒด ์์ด๋ ์คํ๋๊ธฐ ๋๋ฌธ์, ์ธ์คํด์ค ํ๋/๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๊ณ thisํค์๋๋ ์ฌ์ฉ์ด ๋ถ๊ฐํจ. Singleton ๊ฐ์ ํน์ ๊ฐ์ฒด๊ฐ ์ ์ฒด ํ๋ก๊ทธ๋จ์์ ํ๋๋ง ์์ฑ๋๋ ๊ฒ์ ๋ณด์ฅํจ. ์์ฑ ์ฝ๋ ์์ public class st{ static st singleton = new st(); private st(){} statis st getInstance(){return singleton;} } ์ฑ๊ธํค ๊ฐ์ฒด ํ๋ st val=st.getInstance(); finalํ๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ. ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ผ๋ก ์ด๊ธฐํ ๋ถ๊ฐ. static final(์์) static final int constVal=3;
18.
3 OOP 4)ํจํค์ง,์ ๊ทผ์ ํ์,Getter/Setter Package ๊ฐ์ ํด๋์ค์ ์ฒด๊ณ์
๊ด๋ฆฌ๋ฅผ ์ํด ํธ๋ฆฌํํ๋ก ๊ด๋ฆฌ. ๋ฌผ๋ฆฌ์ ํ์ผ ์์คํ ํด๋. ํ๊ธฐ ์์ํจํค์ง.ํ์ํจํค์ง.ํด๋์ค ์ ์ธ package ์์ํจํค์ง.ํ์ํจํค์ง.ํด๋์ค; ์ ๊ทผ ์ ํ์ ๊ฐ์ ์ ๊ทผ์ ์ ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ. ์ ๊ทผ์ ํ์์(์ฝ->๊ฐ) public/protected/default/private ์ ๊ทผ์ ํ ์ ์ฉ๋์ ์ ๊ทผ๋ถ๊ฐํด๋์ค public ํด๋์ค,ํ๋,์์ฑ์,๋ฉ์๋ ์์ protected ํ๋,์์ฑ์,๋ฉ์๋ ์์ํด๋์ค๊ฐ ์๋ ๋ค๋ฅธ ํจํค์งํด๋์ค default ํด๋์ค,ํ๋,์์ฑ์,๋ฉ์๋ ๋ค๋ฅธํจํค์ง ํด๋์ค private ํ๋,์์ฑ์,๋ฉ์๋ ๋ชจ๋ ์ธ๋ถํด๋์ค Getter/Setter Getter void setName(String name){this.name=Name;} Setter String getName(){return name;}
19.
3 OOP 5)ํจํค์ง,์ ๊ทผ์ ํ์,Getter/Setter Package ๊ฐ์ ํด๋์ค์ ์ฒด๊ณ์
๊ด๋ฆฌ๋ฅผ ์ํด ํธ๋ฆฌํํ๋ก ๊ด๋ฆฌ. ๋ฌผ๋ฆฌ์ ํ์ผ ์์คํ ํด๋. ํ๊ธฐ ์์ํจํค์ง.ํ์ํจํค์ง.ํด๋์ค ์ ์ธ package ์์ํจํค์ง.ํ์ํจํค์ง.ํด๋์ค; ์ ๊ทผ ์ ํ์ ๊ฐ์ ์ ๊ทผ์ ์ ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ. ์ ๊ทผ์ ํ์์(์ฝ->๊ฐ) public/protected/default/private ์ ๊ทผ์ ํ ์ ์ฉ๋์ ์ ๊ทผ๋ถ๊ฐํด๋์ค public ํด๋์ค,ํ๋,์์ฑ์,๋ฉ์๋ ์์ protected ํ๋,์์ฑ์,๋ฉ์๋ ์์ํด๋์ค๊ฐ ์๋ ๋ค๋ฅธ ํจํค์งํด๋์ค default ํด๋์ค,ํ๋,์์ฑ์,๋ฉ์๋ ๋ค๋ฅธํจํค์ง ํด๋์ค private ํ๋,์์ฑ์,๋ฉ์๋ ๋ชจ๋ ์ธ๋ถํด๋์ค Getter/Setter Getter void setName(String name){this.name=Name;} Setter String getName(){return name;}
20.
3 OOP 6)์ด๋ ธํ ์ด์ (1) ์ด๋ ธํ ์ด์ ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ ์ฌ์ฉํํ
@AnnotationName ์ฉ๋ ์ปดํ์ผ๋ฌ์๊ฒ ์ฝ๋๋ฌธ๋ฒ์๋ฌ ์ฒดํฌํ ๋ก ์ ๋ณด ์ ๊ณต. IDE๊ฐ ๋น๋/์ฝ๋๋ฅผ ์๋์์ฑํ๋๋ก ์ ๋ณด ์ ๊ณต. ์คํ์ ํน์ ๊ธฐ๋ฅ์ ์คํ๋๋ก ์ ๋ณด ์ ๊ณต. ํ์ ์ ์ public @interface AnnotationName{} ์๋ฆฌ๋จผํธ ์ ์ธ ์ public @interface AnnotationName{ String element1(); int element2() default 5; } ํธ์ถ @AnnotationName(element1="A", element2=3); ๋๋ @AnnotationName(element1="B");
21.
3 OOP 7)์ด๋ ธํ ์ด์ (2) ElementType์ด๊ฑฐ์์ ์ ์ฉ๋์ TYPE
ํด๋์ค,์ธํฐํ์ด์ค,์ด๊ฑฐํ์ ANNOTATION_TYPE ์ด๋ ธํ ์ด์ FIELD ํ๋ CONSTRUCTOR ์์ฑ์ METHOD ๋ฉ์๋ LOCAL_VARIABLE ๋ก์ปฌ๋ณ์ PACKAGE ํจํค์ง RetentionPolicy์ด๊ฑฐ์์ ์ค๋ช SOURCE ์์ค์์์๋ง ์ด๋ ธํ ์ด์ ์ ๋ณด ์ ์ง. CLASS ๋ฐ์ดํธ์ฝ๋ํ์ผ๊น์ง ์ด๋ ธํ ์ด์ ์ ๋ณด ์ ์ง. RUNTIME ๋ฐ์ดํธ์ฝ๋ํ์ผ๊น์ง์ด๋ ธํ ์ด์ ์ ์ง, ๋ฆฌํ๋ ์ ์ ์ฌ์ฉํด ๋ฐํ์์ ์ด๋ ธํ ์ด์ ์ ๋ณด ํ๋ ๋ฆฌํดํ์ ๋ฉ์๋๋ช (๋งค๊ฐ๋ณ์) ์ค๋ช Field[] getFields() ํ๋์ ๋ณด๋ฅผ Field๋ฐฐ์ด๋ก๋ฆฌํด Constructor[] getConstructors() ์์ฑ์์ ๋ณด๋ฅผ Contructor๋ฐฐ์ด๋ก ๋ฆฌํด Method[] getDeclaredMethods() ๋ฉ์๋์ ๋ณด๋ฅผ Method๋ฐฐ์ด๋ก๋ฆฌํด
22.
3 OOP 8)์ด๋ ธํ ์ด์ (3) ๋ฆฌํดํ์ ๋ฉ์๋๋ช (๋งค๊ฐ๋ณ์) boolean isAnnotationPresent (Class<?extends
Annotation>annotationClass) ์ง์ ํ ์ด๋ ธํ ์ด์ ์ด ์ ์ฉ๋์๋์ง ์ฌ๋ถ. Class์์ ํธ์ถํ์ ๋, ์์ ํด๋์ค์ ์ ์ฉ๋ ๊ฒฝ์ฐ์๋ true๋ฐํ Annotation getAnnotation(Class<T> annotationClass) ์ง์ ์ด๋ ธํ ์ด์ ์ด ์ ์ฉ๋์ด ์์ผ๋ฉด ์ด๋ ธํ ์ด์ ๋ฐํ, ์๋๋ผ๋ฉด null๋ฐํ. Class์์ ํธ์ถํ์ ๋ ์์ ํด๋์ค์ ์ ์ฉ๋ ๊ฒฝ์ฐ์๋ ์ด๋ ธํ ์ด์ ๋ฐํ Annotation[] getAnnotations() ์ ์ฉ๋ ๋ชจ๋ ์ด๋ ธํ ์ด์ ์ ๋ฆฌํดํ๋ค. Class์์ ํธ์ถํ์ ๋ ์์ํด๋์ค์ ์ ์ฉ๋ ์ด๋ ธํ ์ด์ ๋ ๋ชจ๋ ํฌํจํ๋ค. ์ ์ฉ๋ ์ด๋ ธํ ์ด์ ์ด ์์ ๊ฒฝ์ฐ ๊ธธ์ด๊ฐ 0์ธ ๋ฐฐ์ด์ ๋ฆฌํดํ๋ค. Annotation[] getDeclaredAnnotations() ์ง์ ์ ์ฉ๋ ๋ชจ๋ ์ด๋ ธํ ์ด์ ๋ฐํ. Class์์ ํธ์ถ์ ์์ ํด๋์ค์ ์ ์ฉ๋ ์ด๋ ธํ ์ด์ ์ ๋๋ฝ.
Download