๐Ÿ’ป

Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์˜์กด๊ด€๊ณ„(Dependency) ๋ณธ๋ฌธ

KITRI/JAVA

Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์˜์กด๊ด€๊ณ„(Dependency)

๋˜ํšจ๋‹ˆ 2020. 5. 11. 10:19

์˜ˆ์ œ 1)

 

RAM ๊ตฌ์กฐ

heap   stack  
new AA()... 0x100 a 0x100
    b 0x100
    c 0x100
    d 0x100
new AA()... 0x200 x 0x200
    y 0x200
       

b, c, d ์ƒˆ๋กœ ํ• ๋‹น ๋ฐ›์ง€ ์•Š๊ณ  ์ฃผ์†Œ๊ฐ’์„ ์ฐธ์กฐํ•œ๋‹ค. 

new๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด๋ฅผ ๋ฐœ์ƒํ•˜๋ฉด ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

b.func() ์ด ์‹คํ–‰๋˜๋Š” ์ด์œ ๋Š” a=null; ๋กœ ํ•ด์ค˜๋„ b๋Š” ์ฃผ์†Œ๊ฐ’์„ ์ฐธ์กฐํ•˜๊ธฐ๋•Œ๋ฌธ์ด๋‹ค.

 

RAM

heap   stack  
    a null
    b null
    c null
    d null
new AA()... 0x200 x 0x200
    y 0x200
       

๋ฉ”๋ชจ๋ฆฌ๋Š” constant, heap, stack ์˜์—ญ์ด ์กด์žฌ.

constanct : static. ์ข…๋ฃŒ๊นŒ์ง€ ์‚ด์•„์žˆ๋‹ค.

stack : ๋ธ”๋Ÿญ๋‹จ์œ„๋กœ ์กด์žฌํ•œ๋‹ค.

heap : new. ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด์„œ ์ง€์›Œ์งˆ๋•Œ๊นŒ์ง€ ์‚ด์•„์žˆ๋‹ค

 

 

 

 

AA a = new AA();

์™ผ์ชฝ์€ ์Šคํƒ์˜์—ญ ์˜ค๋ฅธ์ชฝ์€ ํž™์˜์—ญ.

new ๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํž™์˜์—ญ. 

 

 

 

๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๊ณ  ํ•จ์ˆ˜๋‹จ์œ„๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ์ฒด๋กœ ๋˜์ ธ์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋” ๋งŽ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด์ž.

 

์˜ˆ์ œ 2) 

heap   stack  
new BB() 0x100 b 0x100
       
new CC() 0x200 c 0x200
       
       

 

 

 

 

 

 

 

 

 

 

 

 

heap   stack  
new BB 0x100 b null
       
new CC 0x200 c 0x200
       

main ํ•จ์ˆ˜์—์„œ b = null;  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

heap   stack  
    b null
       
new CC() 0x200 c 0x200
       

CCํด๋ž˜์Šค์˜ ํ•จ์ˆ˜ fun(BB b) ์—์„œ b = null; ์„ ํ•ด์ค˜์•ผ ๋น„๋กœ์„œ heap์—์„œ ์ง€์›Œ์ง„๋‹ค. (by ๊ฐ€๋น„์ง€์ฝœ๋ ‰ํ„ฐ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

์•„๋ž˜์˜ ๊ฒฝ์šฐ๋ฅผ ๋ณด์ž. 

๊ฐ์ฒด๋ฅผ ์ง€์—ญ๋ณ€์ˆ˜ ๋˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ => Dependency(์˜์กด๊ด€๊ณ„)

 

fun(BB b) : ๊ฐ์ฒด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์“ด๊ฒƒ

sub() : ๊ฐ์ฒด๋ฅผ ํ•จ์ˆ˜์•ˆ์—์„œ ์ง€์—ญ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<< ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ >>

Dependency(์˜์กด๊ด€๊ณ„)

- ๋‹จ๋ฐฉํ–ฅ์ด๋ฉฐ ํ•จ์ˆ˜ ์•ˆ์— ๊ฐ์ฒด๋ฅผ Parameter, ์ƒ์„ฑ, ๋ฐ˜ํ™˜ ์‚ฌ์šฉ

 

 

 

 

 

์˜ˆ์ œ 3)

์‹คํ–‰ํ™”๋ฉด
๋””๋ฒ„๊น…ํ™”๋ฉด / s = null; ์‹คํ–‰์‹œ null๊ฐ’์ด value๋กœ ๋“ค์–ด๊ฐ.

 

 

 

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
Comments