[JAVA/๋ฒˆ์—ญ] Static ๋ฉค๋ฒ„๋ฅผ ์œ„ํ•œ JVM ์Šคํ† ๋ฆฌ์ง€

[JAVA/๋ฒˆ์—ญ] Static ๋ฉค๋ฒ„๋ฅผ ์œ„ํ•œ JVM ์Šคํ† ๋ฆฌ์ง€

์›๋ฌธ : https://www.baeldung.com/jvm-static-storage ์˜ค์—ญ์ด๋‚˜ ์˜์—ญ์ด ๋งŽ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ์ฝ์–ด์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 1. ๊ฐœ์š” ์šฐ๋ฆฌ๋Š” ์ข…์ข… JVM์˜ ๋‚ด๋ถ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ๊ฐ„๊ณผํ•˜๋ฉฐ ์ž‘์—…ํ•˜๊ณ ๋Š” ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์„ฑ๋Šฅ๊ณผ ์ฝ”๋“œ ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•ด์„œ๋Š” JVM ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ธฐ๋ณธ์ ์ธ ์‚ฌํ•ญ์„ ๊ณต๋ถ€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด๋ฒˆ ๊ธฐ์‚ฌ์—์„œ๋Š”, ์šฐ๋ฆฌ๋Š” JVM ์ €์žฅ๊ณต๊ฐ„๊ณผ static ํ•„๋“œ ๊ด€ํ•ด ๊ณต๋ถ€ํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค. 2. JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ๋ถ„ ์šฐ์„  JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ƒ๊ธฐ์‹œ์ผœ๋ณด๋„๋ก ํ•˜์ž. 2.1 Heap ๋ฉ”๋ชจ๋ฆฌ ํž™ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋Ÿฐํƒ€์ž„ ์ €์žฅ ๊ณต๊ฐ„์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  JVM ์Šค๋ ˆ๋“œ๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ, ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์™€ ๋ฐฐ์—ด๋“ฑ์ด ์ƒ์„ฑ๋˜๋ฉด ์ด ๊ณณ์— ์ €์žฅ๋œ๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋‘ ๊ฐ€์ง€ ๊ณต๊ฐ„์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š”๋ฐ..

  • textsms
[์šด์˜์ฒด์ œ] 2. ํ”„๋กœ์„ธ์Šค ๊ฐœ์š”

[์šด์˜์ฒด์ œ] 2. ํ”„๋กœ์„ธ์Šค ๊ฐœ์š”

1. ํ”„๋กœ์„ธ์Šค ํ”„๋กœ์„ธ์Šค๋ž€ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณธ๋”” ํ”„๋กœ๊ทธ๋žจ์ด๋ž€ ๋””์Šคํฌ ๋‚ด ํŒŒ์ผ๋กœ์จ ์กด์žฌํ•˜๋ฉฐ ์ •์ ์ด๊ณ  ์ˆ˜๋™์ ์ธ ๊ฐœ์ฑ„์ด๋‹ค. ํ•˜์ง€๋งŒ ์šด์˜์ฒด์ œ๋กœ ํ•„์š”ํ•œ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„ ๋™์ž‘์„ ์‹คํ–‰ํ•˜๋ฉด ๋Šฅ๋™์ ์ด๊ณ  ๋™์ ์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ณ€ํ™” ํ”„๋กœ์„ธ์Šค๋Š” ์ผ๋‹จ ์ƒ์„ฑ๋œ ํ›„์—๋Š” ์ž์›์„ ํ• ๋‹น๋ฐ›๊ณ  ์ข…๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋‹ค์„ฏ ๋‹จ๊ณ„์˜ ์ƒํƒœ๋ฅผ ์˜ค๊ฐ„๋‹ค. ์ƒ์„ฑ → ์ค€๋น„ ์Šค์ผ€์ค„๋Ÿฌ์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š”๋ฐ, ์ด ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ์ด์šฉ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์–ด๋–ค ์žฅ์น˜๊ฐ€ ์š”๊ตฌ๋˜๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. ์ค€๋น„ → ์‹คํ–‰ ์‚ฌ์ „์— ์ •์˜๋œ ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋œ๋‹ค. (๋””์ŠคํŒจ์น˜๋ผ๊ณ  ํ•œ๋‹ค.) ์‹คํ–‰ → ์ค€๋น„ ํ• ๋‹น ์‹œ๊ฐ„์ด๋‚˜ ์šฐ์„ ์ˆœ์œ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ ์ ๋ฐฉ์‹์— ์˜ํ•ด ์ค€๋น„์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐ€๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์‹คํ–‰ → ๋Œ€๊ธฐ ์ž…์ถœ๋ ฅ ํ˜น์€ ํŽ˜์ด์ง€ ๊ตํ™˜๋“ฑ์˜ ์ž‘์—…์€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ธฐ ..

  • textsms
[์šด์˜์ฒด์ œ] 1. ์šด์˜์ฒด์ œ ๊ฐœ์š”

[์šด์˜์ฒด์ œ] 1. ์šด์˜์ฒด์ œ ๊ฐœ์š”

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

  • textsms
[JAVA] String Literal ๊ณผ String Pool

[JAVA] String Literal ๊ณผ String Pool

์‹œ์ž‘ํ•˜๋ฉฐ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ String Class ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์›์‹œ์ž๋ฃŒํ˜•์ฒ˜๋Ÿผ ๋ฆฌํ„ฐ๋Ÿด ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•œ์ง€์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๋ฏผํ•ด๋ณธ์ ์ด ์—†์—ˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์œผ๋กœ ์กฐ์‚ฌ๋ฅผ ์‹œ์ž‘ํ•œ ๊ฒฐ๊ณผ String Class ์— ๋Œ€ํ•œ ํฅ๋ฏธ๋กœ์šด ์‚ฌ์‹ค๋“ค์„ ๋งŽ์ด ์•Œ๊ฒŒ ๋˜์—ˆ๊ณ  ์ด๋ฅผ ์ •๋ฆฌํ•ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. String Class ๋งŒ์ด ๋ฆฌํ„ฐ๋Ÿด ์„ ์–ธ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ ์ด์œ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•ด์„œ, ํŽธ๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‹ค๋ฅธ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ๋งค๋ฒˆ new ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด char ๋ฐฐ์—ด์„ ์ธ์ž๋กœ ๋„ฃ๊ณ  ์„ ์–ธํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ๊ฐœ๋ฐœ์ž๋“ค์€ ๋งค๋ฒˆ String ์ž๋ฃŒํ˜•์„ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ ์–ธ๋ฌธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. String hello = new String(new char[] { 'h', 'e', 'l', 'l', 'o' }); ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์œ„์™€ ๊ฐ™์€..

  • textsms

[์ž๋ฃŒ๊ตฌ์กฐ] 7. ํŠธ๋ฆฌ

7์žฅ. ํŠธ๋ฆฌ 1. ํŠธ๋ฆฌ์˜ ๊ฐœ๋… ํŠธ๋ฆฌ๋กœ ๋‚˜ํƒ€๋‚ธ ํŠธ๋ฆฌ ๊ณ„์ธตํ˜• ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ํ‘œํ˜„์— ์ ํ•ฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ex1) Tree -> Binary Tree / m-way Tree ex2) Nodes : ๋ชจ์ฐจ๋ฅดํŠธ, ๋ฐ”ํ, ๋ฒ ํ† ๋ฒค, ์„ธ์ž”, ํ”ผ์นด์†Œ, ์•„์ธ์Šˆํƒ€์ธ, ๋‰ดํ„ด Root : ์œ„์ธ -> ์˜ˆ์ˆ ๊ฐ€ / ํ•™์ž 2. ์šฉ์–ด ๋…ธ๋“œ (์ •์ ) ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•ญ๋ชฉ ์„œ๋ธŒํŠธ๋ฆฌ ํŠน์ • ๋…ธ๋“œ ํ•˜์œ„๋กœ ํŒŒ์ƒ๋˜๋Š” ์ƒˆ๋กœ์šด ํŠธ๋ฆฌ ๋ฃจํŠธ๋…ธ๋“œ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ตœ์ƒ์œ„ ๋…ธ๋“œ ๋ฆฌํ”„๋…ธ๋“œ ์ž์‹ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ตœํ•˜์œ„ ๋…ธ๋“œ ์ง„์ž… ์ฐจ์ˆ˜ ๋…ธ๋“œ๋กœ ๋“ค์–ด์˜ค๋Š” ์„ ์˜ ๊ฐœ์ˆ˜ ๋ฃจํŠธ๋…ธ๋“œ๋Š” 0์ด๋ฉฐ ๋‚˜๋จธ์ง€ ๋…ธ๋“œ๋Š” ๋ฌด์กฐ๊ฑด 1์ด๋‹ค. 2์ด์ƒ์ธ ๊ฒฝ์šฐ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋œ๋‹ค. ์ง„์ถœ ์ฐจ์ˆ˜ ๋…ธ๋“œ๋กœ ๋ถ€ํ„ฐ ๋‚˜๊ฐ€๋Š” ์„ ์˜ ๊ฐœ์ˆ˜ ๋…ธ๋“œ์˜ ์ฐจ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค. (degree of a node) ์ตœ๋Œ€ ์ฐจ์ˆ˜๊ฐ€ ํŠธ๋ฆฌ ์ „์ฒด์˜..

  • textsms