LIKELION๐Ÿฆ TIL(2022-06-23)

Ryuยท2022๋…„ 6์›” 23์ผ
0

๋ฉ‹์Ÿ์ด ์‚ฌ์ž์ฒ˜๋Ÿผ

๋ชฉ๋ก ๋ณด๊ธฐ
7/12
post-thumbnail

CPU์˜ ๊ตฌ์กฐ

๐Ÿ’ก Control Unit : ๋งค๋‹ˆ์ € ALU : ๊ณ„์‚ฐ ๋ ˆ์ง€์Šคํ„ฐ : ๊ธฐ์–ต๋ ฅ

๋ ˆ์ง€์Šคํ„ฐ

  • ํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ โ†’ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ์†Œ์Šค์ฝ”๋“œ ๋ผ์ธ
  • ๋ช…๋ น์–ด ๋ ˆ์ง€์Šคํ„ฐ โ†’ ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ๋ช…๋ น์–ด
  • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ โ†’ ํƒ€๊ฒŸ(๋ชฉํ‘œ)
  • ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ โ†’ ํƒ€๊ฒŸ์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ or ํƒ€๊ฒŸ์— ๋„ฃ์„ ๋ฐ์ดํ„ฐ
  • ์–ดํ๋ฎฌ๋ ˆ์ดํ„ฐ โ†’ ๊ณ„์‚ฐ ๊ฐ’. cpu์—์„œ ๊ณ„์‚ฐ ๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ.

๋ ˆ์ง€์Šคํ„ฐ ์„ค๋ช…

  • CPU์—๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ์žˆ๊ณ , ๋ ˆ์ง€์Šคํ„ฐ ์•ˆ์— ์žˆ๋Š”
    ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ(๋ชฉํ‘œ) ๊ฐ€ 104 ๋ฒˆ์ง€๋ผ ํ•˜์ž.
  • RAM์œผ๋กœ ๊ฐ€์„œ 104๋ฒˆ์ง€ ์œ„์น˜์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๊ฐ€์ ธ์™€
    โ†’ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ(๊ฒฐ๊ณผ) ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด๋ฅผ 44๋ผ ํ•˜์ž.

์ •๋ณด์˜ ๋‹จ์œ„

์™œ 64bit ์ปดํ“จํ„ฐ๋ฅผ ์จ์•ผ ํ•˜๋Š”๊ฐ€ ?

  • 32๋น„ํŠธ OS ์™€ 64 ๋น„ํŠธ OS
  • 32๋น„ํŠธ cpu์— ๋งž์ถฐ์ง„ os
  • 64๋น„ํŠธ cpu์— ๋งž์ถฐ์ง„ os
  • cpu์—์„œ ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๊ธฐ๋ณธ ์ €์žฅ ๋‹จ์œ„์ด๋‹ค.
  • 16๋น„ํŠธ cpu 1์›Œ๋“œ โ‡’ 16bit
  • 32๋น„ํŠธ cpu 1์›Œ๋“œโ‡’ 32bit
  • 64๋น„ํŠธ cpu 1์›Œ๋“œโ‡’ 64bit

๐Ÿค 32๋น„ํŠธ os์—์„œ๋Š” RAM์„ 4GB ์ด์ƒ ์“ธ ์ˆ˜ ์—†๋‹ค.

  • 32bit os ์ปดํ“จํ„ฐ : cpu์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡์˜ ํฌ๊ธฐ๊ฐ€ 32bit
    โ†’ ์ด๋ฅผ 1์›Œ๋“œ ๋ผ๊ณ  ํ•œ๋‹ค.
    โ†’ ์ฆ‰, 2^32 = ์•ฝ 42์–ต. 0~42์–ต ์ •๋„์˜ ๋ฒ”์œ„๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ RAM 8GB ๋ผ๋ฉด,
    ๋ฐฉ(1byte) ๊ฐ€ ์•ฝ 85์–ต ๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹คโ€ฆ (์šฉ๋Ÿ‰ ์ „ํ™˜์€ ์•„๋ž˜ ์ฐธ๊ณ )
    (RAM์€ ์•„ํ‚คํ…์ฒ˜ ์ƒ ํ‘œ์ค€ ๋ฐฉ ํ•˜๋‚˜ ํฌ๊ธฐ๊ฐ€ 1byte๋กœ ์„ค์ •๋˜์–ด ์žˆ์Œ)
  • ์ฆ‰, 32bit os ์ปดํ“จํ„ฐ๊ฐ€ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋ฅผ 8GB RAM์ด ์ดˆ๊ณผํ•ด๋ฒ„๋ฆฐ๋‹คโ€ฆ

CPU - Register - RAM

๐Ÿ’ก cpu ๋Š” ์ง์ ‘ RAM ์— ๊ฐ€์ง€ ์•Š๊ณ , ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•œ๋‹ค. (์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ, ๋ฐ์ดํ„ฐ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ) ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ์— 30์–ต์ด๋ผ๋Š” ์ˆซ์ž๊ฐ€ ๋“ค์–ด์žˆ๋‹ค๋ฉด, RAM์˜ 30์–ต๋ฒˆ ์งธ ๋ฐฉ์— ์ ‘๊ทผํ•ด์„œ, ๊ฑฐ๊ธฐ์— ์ ํžŒ ๋ฐ์ดํ„ฐ โ€˜4โ€™๋ฅผ ๋ฐ์ดํ„ฐ ์ฃผ์†Œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

์šฉ๋Ÿ‰ ์ „ํ™˜

  • 8bit = 1byte
    1024byte = 1KB
    1024KB = 1MB
    1024MB = 1GB

C์–ธ์–ด & CS

์ปดํ“จํ„ฐ ๊ตฌ์„ฑ

์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  • ์šด์˜์ฒด์ œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
    c ํ”„๋กœ๊ทธ๋žจ โ†’ ์šด์˜์ฒด์ œ์— ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์š”์ฒญ
  • ๋™์‹œ์— 2๊ฐ€์ง€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, ์„œ๋กœ ๊ฐ™์€ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ ์นจ๋ฒ”์ด ์ผ์–ด๋‚  ์ˆ˜ ์žˆ์„๊นŒ?
    โ†’ ์—†๋‹ค!

์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ƒํ™”

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

์œˆ๋„์šฐ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ

  • ์šด์˜์ฒด์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ€์ƒํ™”๋ž‘ ํ—ท๊ฐˆ๋ฆฌ์ง€ ๋ง์ž.
  • ์œˆ๋„์šฐ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์œˆ๋„์šฐ์—๋งŒ ์กด์žฌ. (๋ฆฌ๋ˆ…์Šค๋Š” ์Šค์™‘์ด๋ผ๊ณ  ํ•จ)
    • RAM์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ€์กฑํ•  ๋•Œ, ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์ผ๋ถ€๋ถ„์„ ๋‚จ๊ฒจ๋†“๋Š”๋‹ค.
      โ†’ ํ•˜๋“œ๋””์Šคํฌ์˜ ์ผ๋ถ€๋ถ„์„ RAM์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์›๋ฆฌ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํ”„๋กœ์„ธ์Šค A ์™€ ํ”„๋กœ์„ธ์Šค B๊ฐ€ ๋™์‹œ์— ์‹คํ–‰๋˜๊ณ  ์žˆ๋‹ค๋ฉด,
โ†’ ๋‘˜ ๋‹ค 4GB ์ด์ƒ์”ฉ ์žกํžŒ๋‹ค.
โ†’ ํ”„๋กœ๊ทธ๋žจ์˜ ์†๋„๋ฅผ ๋Šฆ์ถ”๋Š” ๋Œ€์‹ , ์šฉ๋Ÿ‰์„ ๋งŽ์ด ์ค€๋‹ค.

๋ณ€์ˆ˜ํƒ€์ž…

  • character โ†’ 1byte ์ •์ˆ˜. 256. ์Œ์ˆ˜๋ถ€ํ„ฐ ์„ธ์•ผํ•˜๋ฏ€๋กœ,
    โ†’ -128 ~ 127 (0ํฌํ•จ)

  • short โ†’ 2byte ์ •์ˆ˜. 32000๊นŒ์ง€ ๊ฐ€๋Šฅ.

  • int โ†’ -21์–ต ~ +21์–ต๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ.

  • unsigned char i = 200; โ†’ unsigned ๋Š” ์Œ์ˆ˜๋ฅผ ๋ฒ„๋ฆฐ๋‹ค!
    printf(โ€%uโ€, i); โ†’ unsigned๋Š” %u ๋ฅผ ์‚ฌ์šฉ.

  • 22์–ต์„ ์ €์žฅํ•˜๋ ค๋ฉด ?

    unsigned int s = 2200000000; // ์–‘์ˆ˜๋งŒ ํฌํ•จํ•˜๋ฏ€๋กœ 42์–ต๊นŒ์ง€ ๊ฐ€๋Šฅ.
    โ†’ ์ด๊ฒƒ ์—ญ์‹œ printf(โ€%uโ€, s);
    โ†’ %d ๋Š” -21์–ต ~ +21์–ต ๊นŒ์ง€๋งŒ care ๊ฐ€๋Šฅ.


os์™€ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„ ์ตœ์ ํ™”, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

  • ํ•˜๋“œ๋””์Šคํฌ๋Š” ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•˜๋‹ค!
  • RAM์€ ๊ณต๊ฐ„์ด ๋Š˜ ๋ถ€์กฑํ•˜๋‹ค.
  • ์ฆ‰, ํ•ญ์ƒ RAM์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํŽผ์ณ์ง„๋‹ค.
๐Ÿ’ก ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋Š˜ ๋ถ€์กฑํ•˜๋‹ค !!! ๋ชจ๋“  ์ตœ์ ํ™”, ๋ชจ๋“  ๊ธฐ๊ต โ†’ ๋ฉ”๋ชจ๋ฆฌ ์œ„์ฃผ๋กœ ๋ฐœ์ „!

ํ•จ์ˆ˜๋Š” ์™œ ์Šคํƒ์— ๋ชจ์•„๋†“์„๊นŒ์š” ?

  • ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ๋„ํ™”์ง€์— ์ด๊ณณ์ €๊ณณ ๊ทธ๋ ค๋†“์œผ๋ฉด, ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
    โ†’ ์ฆ‰, ๋นˆ๊ณต๊ฐ„ ์—†์ด ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ• ์ง€ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ์Šคํƒ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๊ทธ๋Ÿฐ๋ฐ, ์Šคํƒ์—์„œ โ€˜์—ฌ์œ  ๊ณต๊ฐ„โ€™ ์ด ํ•„์š”ํ• ๊นŒ ?

๋ฉ”๋ชจ๋ฆฌ์˜ ๋ถ„๋ฐฐ

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐฉ์–ด์ ์œผ๋กœ ๋ถ„๋ฐฐํ•ด์•ผ, ๋‚˜์ค‘์— โ€˜ํž™โ€™ ์œผ๋กœ ๋™์ ํ• ๋‹น ํ•  ๋•Œ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
  • stack ์ง€์—ญ์—๋Š” ํ•จ์ˆ˜๊ฐ€ ์Œ“์ธ๋‹ค. ๋˜, ์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ์Œ“์ธ๋‹ค. (heap ์˜์—ญ์€ ๊ฐ์ฒด๊ฐ€ ์Œ“์ž„.)
    (๋งค๊ฐœ๋ณ€์ˆ˜๋„ ์ง€์—ญ๋ณ€์ˆ˜๋‹ค)
  • code ์˜์—ญ์—๋Š” int , return ๋“ฑ ์ฝ”๋“œ ์ •๋ณด๋“ค์ด ์Œ“์ธ๋‹ค.

๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ๊ฒƒ(์ •๋ฆฌ)

  • ์•„๋ž˜์„œ ๋ถ€ํ„ฐ ์ฐจ๊ณก์ฐจ๊ณก ๋ถ™์—ฌ์„œ ์Œ“์ด๋Š” ์ด์œ 
    โ†’ ์ตœ๋Œ€ํ•œ ๋ฐฉ์–ด์ ์œผ๋กœ ์จ์•ผ ํ•œ๋‹ค. ์•ž์œผ๋กœ ์–ผ๋งˆ๋‚˜ ์“ธ ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ.
    โ†’ ์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์•„๋ผ๊ธฐ ์œ„ํ•ด์„œ๋‹ค !!
  • ๋งค๊ฐœ๋ณ€์ˆ˜, ์ผ๋ฐ˜์ง€์—ญ๋ณ€์ˆ˜ ๋ชจ๋‘ ์ง€์—ญ๋ณ€์ˆ˜์ด๋‹ค.
    โ†’ ์Šคํƒ์— ์Œ“์ธ๋‹ค.

Java

intllij setting

Java ์˜ ํŠน์ง•

  • ํด๋ž˜์Šค ๋งŒ๋“ค ๋•Œ, ์‚ฌ์ „์— ์†์„ฑ, ๋ฉ”์†Œ๋“œ ๋“ฑ ๊ตฌ์„ฑ์„ ์™„๋ฃŒํ•ด์•ผ ํ•œ๋‹ค.
    • Car car ๋Š” JVM ์ฝ”๋“œ ์˜์—ญ์— ์ €์žฅ.
    • new Car(); ์™€ ๊ฐ™์ด new๋ฅผ ํ†ตํ•ด heap ์˜์—ญ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ,
      ๊ฐ€์ ธ์˜ฌ ๋•Œ ์†์„ฑ์ด๋‚˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ์—†๋‹ค๋ฉด, ๋นˆ ๊ป๋ฐ๊ธฐ๋งŒ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋จ.

ํด๋ž˜์Šค์™€ ๊ฐ์ฒด!! (์ค‘์š”ํ•จ)

Class Car { }
ํด๋ž˜์Šค(์„ค๊ณ„๋„) : ์›๋ณธ ํด๋” โ†’ JVM/์ฝ”๋“œ์˜์—ญ/ํด๋ž˜์Šค/Car ์ƒ์„ฑ.

new Car();
๊ฐ์ฒด(์ œํ’ˆ) : ๋ณต์‚ฌ๋ณธ ํด๋” โ†’ JVM/์ฝ”๋“œ์˜์—ญ/ํด๋ž˜์Šค/Car ๋ณต์‚ฌํ•ด์„œ
โ†’ JVM/Heap/ํด๋ž˜์Šค/Car/Car@1

๊ฐ์ฒด๋Š” ํด๋”, ๋ณ€์ˆ˜๋Š” ํ…์ŠคํŠธํŒŒ์ผ(R/W), ํ•จ์ˆ˜(๋ฉ”์†Œ๋“œ)๋Š” ์‹คํ–‰(exe)ํŒŒ์ผ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Car aCar = new Car(); // 2๊ฐ€์ง€ โ†’ ๊ฐ์ฒด, ๊ฐ์ฒด๋ฆฌ๋ชจ์ฝ˜

  1. new Car(); ํ•˜๋Š” ์ˆœ๊ฐ„, heap ์— **๊ฐ์ฒด**๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ๊ฐ์ฒด ์•ˆ์—๋Š” ์ž๊ธฐ ์ž์‹ (this)์„ ์กฐ์ข…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด ๋ฆฌ๋ชจ์ฝ˜์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.
  2. ์ž๋™์ฐจ ๋ณ€์ˆ˜ aCar ์€ Stack ์˜์—ญ์— ๋งŒ๋“ค์–ด์ง€๊ณ , heap์— ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ๋ณต์‚ฌ๋ณธ์ด ์ €์žฅ๋œ๋‹ค. (์ด ์•ˆ์—๋„ ๊ฐ์ฒด ๋ฆฌ๋ชจ์ฝ˜์ด ์žˆ๋‹ค.)

โ†’ ์ฆ‰, new ๋ฅผ ํ•œ ๋ฒˆ ํ•ด์ฃผ๋ฉด ๊ฐ์ฒด ๋ฆฌ๋ชจ์ฝ˜์ด 2๊ฐœ ์ƒ์„ฑ๋œ๋‹ค.

Car aCar1 = new Car();
Car aCar2 = aCar1; // aCar1 ์€ 1๋ฒˆ Car๋ฅผ ์กฐ์ข…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ๋ชจ์ฝ˜์ด๋‹ค. (๋ณ€์ˆ˜๊ฐ€ ์•„๋‹˜)

  1. aCar1 ์„ ๊ฐ์ฒด ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜, ์ฐธ์กฐ ๋ณ€์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค. (์‰ฝ๊ฒŒ ํ‘œํ˜„ํ•ด์„œ, ๊ฐ์ฒด ๋ฆฌ๋ชจ์ฝ˜)

Car aCar1 = new Car();
Car aCar2 = new Car();
aCar2 = aCar1; // ๋” ์ด์ƒ aCar2 ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๊ฐ€ ์—†๋‹คโ€ฆ

  1. ์ด๋Ÿด ๋•Œ, Garbage Collector ๊ฐ€ heap ์˜์—ญ์— ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์ฃผ์ธ ์žƒ์–ด๋ฒ„๋ฆฐ ๊ฐ์ฒด๋ฅผ ์ˆ˜๊ฑฐํ•ด๊ฐ„๋‹ค.
  2. ํ•จ์ˆ˜๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์—
    โ†’ aCar1 ์—ญ์‹œ ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด Garbage Collector ๊ฐ€ ์ˆ˜๊ฑฐํ•ด๊ฐ„๋‹ค!

์ฐธ๊ณ  ๋™์˜์ƒ ์—ฌ๊ธฐ

public static void main(String[] args) {   // 8 byte
  int a;   // 4 byte  
  Car car1 = new Car();  // 8 byte
}   // -> ์ด 20 byte ๊ณต๊ฐ„์ด ์Šคํƒ์— ์ƒ๊ธด๋‹ค.

๋ฆฌ๋ชจ์ฝ˜(๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜)์ด ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณธ๋‹ค

  • ๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๋Š” ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด, ๊ฐ์ฒด์˜ โ€˜์ฃผ์†Œโ€™๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ.
  • ์ด โ€˜์ฃผ์†Œโ€™๊ฐ€ ๊ณง ๊ฐ์ฒด ๋ฆฌ๋ชจ์ฝ˜, ๊ฐ์ฒด๋ฅผ ์กฐ์ข…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ž๋ฐ”์—๋Š” 2๊ฐ€์ง€ ๋ณ€์ˆ˜ ํƒ€์ž…์ด ์žˆ๋‹ค

  1. ์ผ๋ฐ˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…
    1. byte, short, int, long
    2. char
    3. boolean
    4. float, double
  2. ๋ ˆํผ๋Ÿฐ์Šค ํƒ€์ž…
    1. ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ ˆํผ๋Ÿฐ์Šค(๋ฆฌ๋ชจ์ฝ˜)
      โ†’ ์ด ์•ˆ์—๋Š” ์ฃผ์†Œ๊ฐ’ ์ด ๋“ค์–ด ์žˆ๋‹ค.
profile
Strengthen the core.

0๊ฐœ์˜ ๋Œ“๊ธ€