CodeGym /ํ–‰๋™ /All lectures for KO purposes /JVM์˜ ๋ฉ”๋ชจ๋ฆฌ

JVM์˜ ๋ฉ”๋ชจ๋ฆฌ

All lectures for KO purposes
๋ ˆ๋ฒจ 1 , ๋ ˆ์Šจ 1036
์‚ฌ์šฉ ๊ฐ€๋Šฅ

JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ์ดํ•ด

์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋“ฏ์ด JVM์€ ์ž์ฒด์ ์œผ๋กœ Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ž์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์„ฑ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ์€ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž‘๋™์˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ด…์‹œ๋‹ค.

JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ์ดํ•ด

์ค‘์š”ํ•œ! ์›๋ž˜ Java ๋ชจ๋ธ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•„ Java 1.5์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„์ „์€ ์˜ค๋Š˜๋‚ ๊นŒ์ง€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(Java 14+).

์Šค๋ ˆ๋“œ ์Šคํƒ

JVM์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Java ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์Šค๋ ˆ๋“œ ์Šคํƒ๊ณผ ํž™์œผ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด์ง„ Java ๋ฉ”๋ชจ๋ฆฌ ๋ชจ๋ธ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์Šค๋ ˆ๋“œ ์Šคํƒ

JVM์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ์Šค๋ ˆ๋“œ ์—๋Š” ์ž์ฒด ์Šคํƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค . ์Šคํƒ์€ ์ฐจ๋ก€๋กœ ์Šค๋ ˆ๋“œ๊ฐ€ ํ˜ธ์ถœํ•œ ๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณด์œ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ "์ฝœ ์Šคํƒ"์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ž๋งˆ์ž ํ˜ธ์ถœ ์Šคํƒ์ด ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

์Šค๋ ˆ๋“œ ์Šคํƒ์—๋Š” ์Šค๋ ˆ๋“œ ์Šคํƒ์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋กœ์ปฌ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ์ž์ฒด ์Šคํƒ์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ๋Š” ๋ณผ ์ˆ˜ ์—†์œผ๋ฉฐ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ ์Šค๋ ˆ๋“œ์—์„œ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋‘˜ ๋‹ค ์ž์ฒด ๋กœ์ปฌ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ๊ฐ ๋กœ์ปฌ ๋ณ€์ˆ˜์˜ ์ž์ฒด ๋ฒ„์ „์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์œ ํ˜•์˜ ๋ชจ๋“  ๋กœ์ปฌ ๋ณ€์ˆ˜( boolean , byte , short , char , int , long , float , double )๋Š” ์ „์ ์œผ๋กœ ์Šค๋ ˆ๋“œ ์Šคํƒ์— ์ €์žฅ๋˜๋ฉฐ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ๋Š” ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ์Šค๋ ˆ๋“œ๋Š” ๊ธฐ๋ณธ ๋ณ€์ˆ˜์˜ ๋ณต์‚ฌ๋ณธ์„ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ณต์œ ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋”๋ฏธ

ํž™์—๋Š” ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“  ์Šค๋ ˆ๋“œ์— ๊ด€๊ณ„์—†์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋งŒ๋“  ๋ชจ๋“  ๊ฐœ์ฒด๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๊ธฐ๋ณธ ์œ ํ˜•์˜ ๋ž˜ํผ(์˜ˆ: Byte , Integer , Long ๋“ฑ)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์ง€์—ญ ๋ณ€์ˆ˜์— ํ• ๋‹น๋˜์—ˆ๋Š”์ง€ ๋˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” ๊ฐ์ฒด(ํž™์— ์ €์žฅ๋จ)๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ˜ธ์ถœ ์Šคํƒ ๋ฐ ๋กœ์ปฌ ๋ณ€์ˆ˜(์Šคํƒ์— ์ €์žฅ๋จ)๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

๋”๋ฏธ

๋กœ์ปฌ ๋ณ€์ˆ˜๊ฐ€ ๊ธฐ๋ณธ ์œ ํ˜•์ธ ๊ฒฝ์šฐ ์Šค๋ ˆ๋“œ์˜ ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ง€์—ญ ๋ณ€์ˆ˜๋Š” ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฐธ์กฐ(๋กœ์ปฌ ๋ณ€์ˆ˜)๋Š” ์Šค๋ ˆ๋“œ ์Šคํƒ์— ์ €์žฅ๋˜์ง€๋งŒ ๊ฐœ์ฒด ์ž์ฒด๋Š” ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์ฒด์—๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜๋ฉฐ ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ์—๋Š” ์ง€์—ญ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ์†Œ์œ ํ•œ ๊ฐœ์ฒด๊ฐ€ ํž™์— ์ €์žฅ๋˜์–ด ์žˆ๋”๋ผ๋„ ์ด๋Ÿฌํ•œ ์ง€์—ญ ๋ณ€์ˆ˜๋Š” ์Šค๋ ˆ๋“œ ์Šคํƒ์—๋„ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋Š” ๊ฐœ์ฒด ์ž์ฒด์™€ ํ•จ๊ป˜ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ๊ธฐ๋ณธ ์œ ํ˜•์ผ ๋•Œ์™€ ๊ฐœ์ฒด ์ฐธ์กฐ์ผ ๋•Œ ๋ชจ๋‘ ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.

์ •์  ํด๋ž˜์Šค ๋ณ€์ˆ˜๋„ ํด๋ž˜์Šค ์ •์˜์™€ ํ•จ๊ป˜ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์ฒด์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ

ํž™์˜ ๊ฐœ์ฒด๋Š” ํ•ด๋‹น ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ์Šค๋ ˆ๋“œ์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐœ์ฒด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๊ฐœ์ฒด์˜ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— ๊ฐ™์€ ๊ฐœ์ฒด์—์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋‘˜ ๋‹ค ๊ฐœ์ฒด์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ๊ณ ์œ ํ•œ ๋กœ์ปฌ ๋ณ€์ˆ˜ ๋ณต์‚ฌ๋ณธ์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ฐœ์ฒด์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ(ํž™)

๋‘ ์Šค๋ ˆ๋“œ์—๋Š” ์ง€์—ญ ๋ณ€์ˆ˜ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.์ง€์—ญ ๋ณ€์ˆ˜ 2ํž™์˜ ๊ณต์œ  ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค(๊ฐœ์ฒด 3). ๊ฐ ์Šค๋ ˆ๋“œ์—๋Š” ์ž์ฒด ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜์˜ ์ž์ฒด ๋ณต์‚ฌ๋ณธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฐธ์กฐ๋Š” ์ง€์—ญ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ์Šค๋ ˆ๋“œ ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์ฐธ์กฐ๊ฐ€ ํž™์˜ ๋™์ผํ•œ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์‚ฌํ•ญ์ด๋‹ˆ ์ฐธ๊ณ ํ•˜์„ธ์š”๊ฐœ์ฒด 3์— ๋Œ€ํ•œ ๋งํฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค๊ฐœ์ฒด 2๊ทธ๋ฆฌ๊ณ ๊ฐœ์ฒด 4๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ(ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œ). ์ด ๋งํฌ๋ฅผ ํ†ตํ•ด ๋‘ ๊ฐœ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐœ์ฒด 2๊ทธ๋ฆฌ๊ณ ๋ฌผ์ฒด4.

๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋˜ํ•œ ๋กœ์ปฌ ๋ณ€์ˆ˜(์ง€์—ญ ๋ณ€์ˆ˜ 1methodTwo ์—์„œ ). ๊ฐ ์‚ฌ๋ณธ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ฐธ์กฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐœ์ฒด 1๊ทธ๋ฆฌ๊ณ ๊ฐœ์ฒด 5) ๊ฐ™์€ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ก ์ ์œผ๋กœ ๋‘ ์Šค๋ ˆ๋“œ๋Š” ๋‘˜ ๋‹ค ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐœ์ฒด 1, ๊ทธ๋ž˜์„œ๊ฐœ์ฒด 5์ด ๋‘ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ๋‘ ๊ฐœ์ฒด ์ค‘ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์ฐธ์กฐ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ์˜ ์˜ˆ

์ฝ”๋“œ์—์„œ ์ž‘์—…์„ ์‹œ์—ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

public class MySomeRunnable implements Runnable() {

    public void run() {
        one();
    }

    public void one() {
        int localOne = 1;

        Shared localTwo = Shared.instance;

        //... do something with local variables

        two();
    }

    public void two() {
        Integer localOne = 2;

        //... do something with local variables
    }
}
public class Shared {

    // store an instance of our object in a variable

    public static final Shared instance = new Shared();

    // member variables pointing to two objects on the heap

    public Integer object2 = new Integer(22);
    public Integer object4 = new Integer(44);
}

run() ๋ฉ”์„œ๋“œ๋Š” one() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ  one() ๋ฉ”์„œ๋“œ๋Š” two() ๋ฉ”์„œ๋“œ ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค .

one() ๋ฉ”์„œ๋“œ๋Š” ๊ธฐ๋ณธ ์ง€์—ญ ๋ณ€์ˆ˜(localOne) ์œ ํ˜•์˜ int ๋ฐ ์ง€์—ญ ๋ณ€์ˆ˜(localTwo), ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.

one() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ์ž์ฒด ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.localOne๊ทธ๋ฆฌ๊ณ localTwo๋‹น์‹ ์˜ ์Šคํƒ์—. ๋ณ€์ˆ˜localOne์„œ๋กœ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ ์Šค๋ ˆ๋“œ์˜ ์Šคํƒ์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์“ฐ๋ ˆ๋“œ๋Š” ๋‹ค๋ฅธ ์“ฐ๋ ˆ๋“œ๊ฐ€ ์ž์‹ ์˜ ๋ณต์‚ฌ๋ณธ์— ์–ด๋–ค ๋ณ€ํ™”๋ฅผ ์ฃผ๋Š”์ง€ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.localOne.

one() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ ์Šค๋ ˆ๋“œ๋Š” ์ž์ฒด ๋ณต์‚ฌ๋ณธ๋„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.localTwo. ๊ทธ๋Ÿฌ๋‚˜ ๋‘ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋ณธlocalTwo๊ฒฐ๊ตญ ํž™์˜ ๋™์ผํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค์€localTwo์ •์  ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด์‚ฌ๋ก€. ์ •์  ๋ณ€์ˆ˜์˜ ๋ณต์‚ฌ๋ณธ์€ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ณต์‚ฌ๋ณธ์€ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋‘ ์‚ฌ๋ณธ ๋ชจ๋‘localTwo๊ฒฐ๊ตญ ๋™์ผํ•œ Shared ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค . Shared ์ธ์Šคํ„ด์Šค ๋„ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค๊ฐœ์ฒด 3์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ.

Shared ํด๋ž˜์Šค ์—๋Š” ๋‘ ๊ฐœ์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ž์ฒด๋Š” ๊ฐœ์ฒด์™€ ํ•จ๊ป˜ ํž™์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๋‘ ๊ฐœ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ด์ •์ˆ˜. ์ด๋Ÿฌํ•œ ์ •์ˆ˜ ๊ฐœ์ฒด๋Š” ๋‹ค์Œ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.๊ฐœ์ฒด 2๊ทธ๋ฆฌ๊ณ ๊ฐœ์ฒด 4๋‹ค์ด์–ด๊ทธ๋žจ์—.

๋˜ํ•œ two() ๋ฉ”์„œ๋“œ๋Š” ์ด๋ฆ„์ด ์ง€์ •๋œ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.localOne. ์ด ์ง€์—ญ ๋ณ€์ˆ˜๋Š” Integer ์œ ํ˜•์˜ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค . ๋ฉ”์„œ๋“œ๋Š” ๋งํฌ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.localOne์ƒˆ๋กœ์šด Integer ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค . ๋งํฌ๋Š” ๋ณต์‚ฌ๋ณธ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.localOne๊ฐ ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด. ๋‘ ๊ฐœ์˜ Integer ์ธ์Šคํ„ด์Šค๊ฐ€ ํž™์— ์ €์žฅ๋˜๋ฉฐ ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด Integer ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋‘ ์Šค๋ ˆ๋“œ๋Š” ๋ณ„๋„์˜ Integer ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๋“ค์€ ์ผ์น˜๊ฐœ์ฒด 1๊ทธ๋ฆฌ๊ณ ๊ฐœ์ฒด 5์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ.

๊ธฐ๋ณธ ์œ ํ˜•์ธ Integer ์œ ํ˜•์˜ Shared ํด๋ž˜์Šค ์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋„ ์ฃผ๋ชฉํ•˜์‹ญ์‹œ์˜ค . ์ด๋Ÿฌํ•œ ๋ณ€์ˆ˜๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ๊ฐœ์ฒด์™€ ํ•จ๊ป˜ ํž™์— ๊ณ„์† ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ ์Šคํƒ์—๋Š” ๋กœ์ปฌ ๋ณ€์ˆ˜๋งŒ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION