๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
1. Java ์ž๋ฐ”/1_0. ์ฑ…, ๊ฐ•์˜

[์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1] 4์ฃผ์ฐจ ๊ต์žฌ_์ •๋ฆฌ

by ๋น„์†Œ์•ผ 2022. 5. 5.
728x90

[์ž๋ฐ”ํ”„๋กœ๊ทธ๋ž˜๋ฐ1] 4์ฃผ์ฐจ ๊ต์žฌ_์ •๋ฆฌ

์ž๋ฐ” ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

 

P48 ์ž๋ฐ”๋Š” ํด๋ž˜์Šค ์•ˆ์— ์ƒˆ๋กœ์šด ํด๋ž˜์Šค, ์ฆ‰ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

class C {
    class D {
    }
}
ํด๋ž˜์Šค D๋Š” ํด๋ž˜์Šค C๋‚ด์— ์ž‘์„ฑ๋œ ๋‚ด๋ถ€ ํด๋ž˜์Šค(inner class)๋กœ์„œ C$D.class ์ด๋ฆ„์œผ๋กœ ํด๋ž˜์Šค ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. 

ํ•˜๋‚˜์˜ ์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ์— ์ž‘์„ฑ๋œ ํด๋ž˜์Šค ์ค‘ ์˜ค์ง ํ•œ ํด๋ž˜์Šค๋งŒ public์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•˜๋‚˜์˜ ํด๋ž˜์Šค ํŒŒ์ผ์— 2๊ฐœ ์ด์ƒ์˜ main() ๋ฉ”์†Œ๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ ํด๋ž˜์Šค ํŒŒ์ผ์ด main() ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์€ ์ƒ๊ด€์—†๋‹ค.

 

 

P50 ์‹ค์‹œ๊ฐ„ ์‘์šฉ ์‹œ์Šคํ…œ์— ๋ถ€์ ํ•ฉ
์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์‹คํ–‰ ๋„์ค‘ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์‹œ์ ์— ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ์‹คํ–‰๋˜๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ์ผ์‹œ์ ์œผ๋กœ ์ค‘๋‹จ๋œ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋กœ ์ธํ•ด ์ผ์ • ์‹œ๊ฐ„ ๋‚ด์— ๋ฐ˜๋“œ์‹œ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด์•ผ๋งŒ ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์‹œ์Šคํ…œ์—๋Š” ์ž๋ฐ” ์–ธ์–ด๊ฐ€ ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

์‹คํ–‰ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค. ์ตœ๊ทผ์—๋Š” ์‹คํ–‰ํ•˜๋Š” ๋„์ค‘ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ํ•ด๋‹น CPU์˜ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผํ•˜๊ณ  CPU๊ฐ€ ๋ฐ”๋กœ ๊ธฐ๊ณ„์–ด๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜๋Š” JIT(Just In Time) ์ปดํŒŒ์ผ๋ง ๊ธฐ๋ฒ•์„ ์ด์šฉํ•œ๋‹ค.

2์žฅ ์ž๋ฐ” ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

 

P59 ํ•œ ํด๋ž˜์Šค์— 2๊ฐœ ์ด์ƒ์˜ main() ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. ์ž๋ฐ” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒฝ์šฐ, ์‹คํ–‰์„ ์‹œ์ž‘ํ•  ํด๋ž˜์Šค์—๋งŒ main()์„ ๋‘๋ฉด ๋˜๋ฏ€๋กœ, ๋ชจ๋“  ํด๋ž˜์Šค๊ฐ€ main()์„ ๊ฐ€์ง€์ง€๋Š” ์•Š๋Š”๋‹ค.

P60 ๋ณ€์ˆ˜๋ž€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„

P61 ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ;์„ ๋ฌธ์žฅ์˜ ๋์œผ๋กœ ์ธ์‹ํ•˜๋ฏ€๋กœ ํ•œ ๋ฌธ์žฅ์ด ๋ฐ˜๋“œ์‹œ ํ•œ ์ค„์— ์ž‘์„ฑ๋  ํ•„์š”๋Š” ์—†๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, s = sum(i, 20);์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•ด๋„ ์ •์ƒ์ ์ธ ๋ฌธ์žฅ์œผ๋กœ ์ธ์‹๋œ๋‹ค.

 

728x90