๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL, WIL/TIL๐Ÿ“˜

06. 13 TIL

728x90

- ์—…๋ฌด ์ˆ™์ง€์‚ฌํ•ญ ๋ณต์Šต

- JVM ๊ฐ•์˜ ๋ณต์Šต

1 - 1 ๋ณต์Šต

* ์˜ˆ์ œ 0) ํด๋ž˜์Šค ํŒŒ์ผ ์‹คํ–‰ ๊ฒฝ๋กœ

(1) 'jenv' ๋“ฑ์„ ํ†ตํ•ด java ๋ฒ„์ „ ์„ค์ •

(2) ํ˜„์žฌ ๊ฒฝ๋กœ์—์„œ '.java' ํŒŒ์ผ ์ปดํŒŒ์ผ

- ๊ฒฝ๋กœ-> ~/java/com/wanted/java00_classpath'

- ๋ช…๋ น๋ฌธ->  'javac Example.java'

(3) ์ปดํŒŒ์ผ๋œ '.class'ํŒŒ์ผ ์‹คํ–‰ : 'java com.wanted.java00_classpath.Example00'

* ์˜ˆ์ œ 1) Single-File Souce-Code Program ~ ๋‹จ์ผ .javaํŒŒ์ผ = ์ปดํŒŒ์ผ์—†์ด ์‹คํ–‰

JDK 11์—์„œ ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ

(1) jenv ๋“ฑ์œผ๋กœ java ๋ฒ„์ „ ์„ค์ •

(2) java Example01.java ๋ช…๋ น์–ด๋กœ ์ปดํŒŒ์ผ ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

JDK 10 ์ดํ•˜ ๋ฒ„์ „ : ์ปดํŒŒ์ผ ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ - ClassNotFoundException

๋‹ค๋ฅธ ํด๋ž˜์Šค ํŒŒ์ผ์„  ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

* ์˜ˆ์ œ 2) JDK Preview Version ์ ์šฉ ~ ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

* ์˜ˆ์ œ 3) ํด๋ž˜์Šค๋ณ„ ํด๋ž˜์Šค๋กœ๋” ์ถœ๋ ฅ

~ ArrayList ํด๋ž˜์Šค๋กœ๋”์˜ ๊ฐ’์ด null์ด ๋‚˜์˜ค๋Š” ์ด์œ  : ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์Šค๋กœ๋”๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋˜์–ด ์ž๋ฐ” ํด๋ž˜์Šค๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ํด๋ž˜์Šค๋กœ๋” ๋™์ž‘์€ JVM์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

* ์˜ˆ์ œ 4) ์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์ˆ˜์˜ 'Constant folding' ๋˜๋Š” 'Inlining'

- ์ปดํŒŒ์ผ ํƒ€์ž„ ์ƒ์ˆ˜๋Š” Java ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ตœ์ ํ™”๋  ์ˆ˜๋„ ์žˆ๋‹ค.(์ตœ์ ํ™” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค)

~ ํ˜ธ์ถœ๋˜๋Š” ์‹œ์ ์— ํ˜ธ์ถœ ์ฝ”๋“œ์— ๊ฐ’์ด ์ง์ ‘ ์‚ฝ์ž…๋  '์ˆ˜๋„' ์žˆ๋‹ค.

* ์˜ˆ์ œ 5)

ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ

- clinit : void ๋ฐ˜ํ™˜, ํด๋ž˜์Šค ํŒŒ์ผ์˜ ๋ฒ„์ „์ด 51.0 ์ด์ƒ์ธ ๊ฒฝ์šฐ ํ•ด๋‹น ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ACC_STATIC ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ ๋ฉ”์„œ๋“œ

์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ

- init : ํด๋ž˜์Šค ์•ˆ์— ์ •์˜ํ•  ๊ฒƒ, void ๋ฐ˜ํ™˜

* ์˜ˆ์ œ 6) ๋ฐ”์ดํŠธ ์ฝ”๋“œ ๋ถ„์„

 

 

728x90