2022. 4. 15. 15:29ใJAVA/์๋ฐ์ ์ ์
1๏ธโฃ return ๋ฌธ
return๋ฌธ์ ํ์ฌ ์คํ์ค์ธ ๋ฉ์๋๋ฅผ ์ข ๋ฃํ๊ณ ํธ์ถํ ๋ฉ์๋๋ก ๋๋์๊ฐ๋ค.
๋ชจ๋ ๋ฉ์๋์๋ ์ ์ด๋ ํ๋์ return๋ฌธ์ด ์์ด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐํ ํ์ ์ด void์ธ ๊ฒฝ์ฐ์๋ return๋ฌธ์ด ์์ด๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์๋ ์ด์ ๋ ์ปดํ์ผ๋ฌ๊ฐ ๋ฉ์๋์ ๋ง์ง๋ง์ return;์ ์๋์ ์ผ๋ก ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐํํ์ ์ด void๊ฐ ์๋ ๊ฒฝ์ฐ, ์ฆ ๋ฐํ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ return๋ฌธ์ด ์์ด์ผ ํ๊ณ , return๋ฌธ์ด ์์ผ๋ฉด ์ปดํ์ผ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
int add(int x, int y) {
int result = x + y;
return result;
}
-> ๋ฐ๋์ return๋ฌธ์ด ์์ด์ผ ํ๋ค.
โ๏ธ ๋งค๊ฐ๋ณ์์ ์ ํจ์ฑ ๊ฒ์ฌ
๋ฉ์๋์ ๊ตฌํ๋ถ{}๋ฅผ ์์ฑํ ๋ ์ ์ผ ๋จผ์ ํด์ผํ๋ ๊ฒ์ ๋งค๊ฐ๋ณ์์ ๊ฐ์ด ์ ์ ํ ๊ฒ์ธ์ง ํ์ธํ๋ ๊ฒ์ด๋ค.
float divide(int x, int y) {
if( y == 0) {
System.out.println("0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.");
return 0;
}
return x / (float) y;
}
-> 0์ผ๋ก ๋๋๋ ๊ฒ์ ๊ธ์ง๋์ด ์๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ ์ ์ y ์ ๊ฐ์ด 0์ธ์ง๋ฅผ ํ์ธํด์ผํ๋ค. ๊ทธ๋์ y์ ๊ฐ์ด 0์ด๋ฉด ๋๋๊ธฐ๋ฅผ ๊ณ์ฐํ ์ ์๊ธฐ๊นจ๋ฌธ์ return๋ฌธ์ ์ด์ฉํด์ ์์ ์ ์ค๋จํ๊ณ ๋ฉ์๋๋ฅผ ๋น ์ ธ๋์์ผํ๋ค.
์ ์ ํ์ง ์์ ๊ฐ์ด ๋งค๊ฐ๋ณ์๋ฅผ ํตํด ๋์ด์จ๋ค๋ฉด ๋งค๊ฐ๋ณ์์ ๊ฐ์ ๋ณด์ ํ๊ฑฐ๋, ๋ณด์ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด return๋ฌธ์ ์ฌ์ฉํด์ ์์ ์ ์ค๋จํ๊ณ ํธ์ถํ ๋ฉ์๋๋ก ๋์๊ฐ์ผํ๋ค.
2๏ธโฃ JVM ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ
์์ฉ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด JVM์ ์์คํ ์ผ๋ก๋ถํฐ ํ๋ก๊ทธ๋จ์ ์ํํ๋๋ฐ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๊ณ JVM์ ์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฉ๋์ ๋ฐ๋ผ ์ฌ๋ฌ ์์ญ์ผ๋ก ๋๋์ด ๊ด๋ฆฌํ๋ค.
1. ๋ฉ์๋ ์์ญ method area
ํ๋ก๊ทธ๋จ ์คํ ์ค ์ด๋ค ํด๋์ค๊ฐ ์ฌ์ฉ๋๋ฉด JVM์ ํด๋น ํด๋์ค์ ํด๋์ค ํ์ผ(*.class)์ ์ฝ์ด์ ํด๋์ค์ ๋ํ ์ ๋ณด(ํด๋์ค ๋ฐ์ดํฐ)๋ฅผ ์ด๊ณณ์ ์ ์ฅํ๋ค.
์ด๋ ๊ทธ ํด๋์ค์ ํด๋์ค ๋ณ์๋ ์ด ์์ญ์ ํจ๊ป ์์ฑ๋๋ค.
2. ํ heap
์ธ์คํด์ค๊ฐ ์์ฑ๋๋ ๊ณต๊ฐ, ํ๋ก๊ทธ๋จ ์คํ ์ค ์์ฑ๋๋ ์ธ์คํด์ค๋ ๋ชจ๋ ์ด๊ณณ์ ์์ฑ๋๋ค. ์ฆ, ์ธ์คํด์ค ๋ณ์๋ค์ด ์์ฑ๋๋ ๊ณต๊ฐ์ด๋ค.
3. ํธ์ถ ์คํ call stack ๋๋ execution stack
ํธ์ถ์คํ์ ๋ฉ์๋์ ์์ ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ๊ณตํ๋ค. ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด, ํธ์ถ์คํ์ ํธ์ถ๋ ๋ฉ์๋๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๋ฉฐ, ์ด ๋ฉ๋ชจ๋ฆฌ๋ ๋ฉ์๋๊ฐ ์์ ์ ์ํํ๋ ๋์ ์ง์ญ ๋ณ์(๋งค๊ฐ๋ณ์ ํฌํจ)๋ค๊ณผ ์ฐ์ฐ์ ์ค๊ฐ๊ฒฐ๊ณผ ๋ฑ์ ์ ์ฅํ๋๋ฐ ์ฌ์ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฉ์๋๊ฐ ์์ ์ ๋ง์น๋ฉด ํ ๋น๋์๋ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ๋ฐํ๋์ด ๋น์์ง๋ค.
ํธ์ถ์คํ
- ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด ์ํ์ ํ์ํ ๋งํผ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์คํ์ ํ ๋น๋ฐ๋๋ค.
- ๋ฉ์๋๊ฐ ์ํ์ ๋ง์น๊ณ ๋๋ฉด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฐํํ๊ณ ์คํ์์ ์ ๊ฑฐ๋๋ค.
- ํธ์ถ์คํ์ ์ ์ผ ์์ ์๋ ๋ฉ์๋๊ฐ ํ์ฌ ์คํ ์ค์ธ ๋ฉ์๋์ด๋ค.
- ์๋์ ์๋ ๋ฉ์๋๊ฐ ๋ฐ๋ก ์์ ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ฉ์๋์ด๋ค.
ํธ์ถ์คํ์ ์ ์ผ ์์์ ์์นํ๋ ๋ฉ์๋๊ฐ ํ์ฌ ์คํ ์ค์ธ ๋ฉ์๋์ด๊ณ , ๋๋จธ์ง๋ ๋๊ธฐ์ํ์ ์๋ค.