๋ธ๋ก๊ทธ ๊ธ์ ์ด์ฌํ ์จ๋ณด๋ ค๊ณ ํ์ง๋ง, ์ต๊ทผ์ ์๊ฐ์ ์ ๋ฆฌํ๋ ์๊ฐ์ ๋ง์ด ๊ฐ๊ฒ ๋์์ต๋๋ค.
๊ฒฐ๊ตญ ๋ธ๋ก๊ทธ ๊ธ์ ์์ฑํ๋ ๊ฒ์ด ์ณ๋ค๊ณ ์๊ฐํ๊ณ . ๊ธ์ ์ฃผ๋ก ์ฐ๋ ค๊ณ ํฉ๋๋ค.
๋ค๋ง, ์ ์๊ฐ์ ์ ๋ฆฌํ๊ณ ๊ธฐ๋ณธ์ ๋ค์ ์ฑ์ฐ๋ ๋๋์ ๋ธ๋ก๊ทธ๋ผ์ ๊ณต๋ถ์ ์ง์นจ์๊ฐ ๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ช ๋ฒ์ฉ, ๋ฐฉ๋ฌธํ๋ฉด์ ์ ๊ธ์ ์ฝ์ด์ฃผ์๋ ๋ถ๋ค๊ป ๊ฐ์ฌํฉ๋๋ค!
๋ฐฐ์ด์ด๋ ๋ฌด์์ผ๊น?
๋ฐฐ์ด์ ์๋ฃ๊ตฌ์กฐ ๊ด์ ์์ ๋ณด๋ฉด ์๋นํ๋ฐ์.
ํ์ฌ ๊ธ์ ์นดํ ๊ณ ๋ฆฌ๋ Java์ ๊ธฐ๋ณธ์ด๋ก ์ด๋ฏ๋ก ๋จ์ํ๊ฒ๋ง ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค!
ํ์ค๊ณผ ๋น๋์ด ์๊ฐํด๋ณด์.
์ซ์๊ฐ `1, 2, 3, 4`์ ํํ๋ฅผ ๋ ๊ณ ์์ผ๋ฉด ์ฐ๋ฆฌ๋ '์๊ฐ ๋์ด๋์ด ์๋ค.' ๋ผ๊ณ ํ์ฃ ?
๊ธ์๊ฐ `ใ , ใ ฃ, ใฑ, ใ , ใ `์ ํํ๋ฅผ ๋ ๊ณ ์์ ๋, ์ฌ๋ฐ๋ฅธ ๊ธ์๋ก '๋ฐฐ์ด'ํด ๋ณด์ธ์. ๋ผ๊ณ ๋ ํ์ฃ ?
์ฌ๋ฐ๋ฅด๊ฒ ๋ฐฐ์ด ํ๋ค๋ฉด, '์ง๊ฐ'์ด ๋ ๊ฒ์ ๋๋ค.
์ง๊ฐ์๋ 10์, 100์, 1000์, 10000์ ๋ฑ ๋ง์ ํํ๋ ๋์ด ๋ค์ด๊ฐ์ฃ ?
ํ์ง๋ง ํํ์ ๋ฒ์๋ ์ํ๊ฐ ์๋ ์ด์ '5๋ง์'์ผ๋ก ํ์ ๋์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ง๊ฐ์ ์ฑ์ธ ์ ์๋ ๋๋ ํ์ ๋์ด ์์ต๋๋ค.
์ค์ ์ปดํจํฐ๋ฅผ ํ์ค๊ณผ ๋น๊ตํ์ฌ ์๊ฐํด๋ณด์.
๋ฐฐ์ด์ ์ง๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ค๋ฉด, ํํ์ ๋ฒ์๊ฐ '์๋ฃํ์ ํฌ๊ธฐ'๊ฐ ๋๊ณ ์ง๊ฐ์ ํฌ๊ธฐ๊ฐ '๋ฐฐ์ด์ ํฌ๊ธฐ'๊ฐ ๋ฉ๋๋ค.
๋ง์ฝ, ํ๊ตญ์ด ์๋๊ณ ๋ฏธ๊ตญ์ด์๋ค๊ณ ํด๋ด ์๋ค. ํํ์ ๋ฒ์๋ ์ต๋ 100$๊ฐ ๋ฉ๋๋ค.
์์, ์๋ฃํ์์ ์ค๋ช ํ๋ฏ์ด ์ปดํจํฐ๋ ๋๊ฐ์ด ์ด๋ค ์๋ฃํ์ด๋์ ๋ฐ๋ผ์ ํํ๊ฐ ๋ฌ๋ผ์ง๋๋ค.
์ถ๊ฐ์ ์ผ๋ก ์ง๊ฐ์ ํฌ๊ธฐ๊ฐ ํ์ ๋์ด ์๋ฏ, ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์ค์ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
Java์์ ๋ฐฐ์ด์ '์ ์ธ'ํ๋ ๋ฐฉ๋ฒ์ `์๋ฃํ[] ๋ฐฐ์ด๋ช (๋ณ์๋ช ) = new ์๋ฃํ[ํฌ๊ธฐ];` ์ ๋๋ค.
์ฌ๊ธฐ์ ๋๊ดํธ '[]'๊ฐ ์ง๊ฐ์ ํฌ๊ธฐ๋ผ๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
// 5๊ฐ์ ์ซ์๋ฅผ ๋ด์ ์ ์๋ ๋ฐฐ์ด
int[] arr = new int[5];
// 5๊ฐ์ ๋ฌธ์์ด์ ๋ด์ ์ ์๋ ๋ฐฐ์ด
String[] brr = new String[5];
์ฌ๊ธฐ์ new ์ฐ์ฐ์๋ผ๊ณ ํ๋ ๊ฒ์ด ์ฌ์ฉ์ด๋ฉ๋๋ค. ์ด๊ฒ์ ์กฐ๊ธ CS์ง์์ ํ์๋ก ํ๋๋ฐ์.
์ฐ๋ฆฌ๋ ์๋ฐ์์ ์ผ๋ฐ์ ์ผ๋ก Stack ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. - ์ปดํจํฐ ๊ตฌ์กฐ ๋ฐ ์ด์์ฒด์ ์ง์์ด ํ์
ํ์ง๋ง String์ด๋ผ๋ UserDefineDataType์ ์ด์ ์ฑํฐ UDDT์์ ์ค๋ช ํ์ง๋ง PDT ๋ฐ UDDT์ ์งํฉ์ ๋๋ค.
๋ฐฐ์ด ๋ํ Reference Data Type์ผ๋ก ํ๋์ UDDT ์ ๋๋ค. ๋ฐฐ์ด์ ์ฐ์๋ ๊ณต๊ฐ์ ์์ฐจ์ ์ผ๋ก ์๋ฃํ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฒ๋๋๋ฐ ํ์ฌ ์ฝ๋๋ฅผ ์ฝ์ ์์ ์ ์ด ํฌ๊ธฐ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
๊ทธ๋์ heap ๋ฉ๋ชจ๋ฆฌ๋ผ๋ ๊ฒ์ ์ฌ์ฉํด์ '๋์ '์ผ๋ก ํ์ฌ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋งํผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ด new ์ฐ์ฐ์์ ๋๋ค.
ํด๋น ๋ด์ฉ์ ์คํ ๋ณ๋ก ์งํํ๊ฒ ๋๋ค๋ฉด ๋ถํธํ ์ ์์ด์ new๋ ์ข ๋ ๋ค์ ๋ค๋ฃจ๋๊ฒ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ฐ์์ ์ฒ ์์ ๊บผ๋ด๊ณ ์ถ์๋ฐ ์ด๋ป๊ฒ ๊บผ๋ด์ง??
์ฐ๋ฆฌ๋ ์๊ฐ์ ํตํด ์ง๊ฐ์์ ์ฒ ์์ ์์น๋ฅผ ๋ฐ๋ก ํ์ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด์ (5000์, 1000์, 10000์, 1000์) ์ด๋ ๊ฒ ์์ ๊ฒฝ์ฐ,
5์ฒ ์๊ณผ ๋ง ์ ์ฌ์ด์ ์ฒ ์์ ๊บผ๋ด๋๊ฐ ๋ง ์ ์์ ์๋ ์ฒ ์์ ๊บผ๋ผ ์ ์์ต๋๋ค.
์ด ๋, ์ฒ ์์ ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ์ ์กด์ฌํ๊ฒ ๋๋ ๊ฒ์ด์ฃ . ์ด๊ฒ์ ๋ฐฐ์ด์์๋ ;index'๋ผ๊ณ ํฉ๋๋ค.
๋ฐฐ์ด๋ ๋ง์ฐฌ๊ฐ์ง ์ ๋๋ค. int[] wallet = new int[4] ๋ผ๋ ๋ฐฐ์ด์ ์ ์ธํ๊ฒ ์ต๋๋ค.
[5000, 1000, 10000, 1000]๋ผ๋ ๊ฐ์ด ์์ ๋ ์ฐ๋ฆฌ๋ ๋ ๋ฒ์งธ, ๋ค ๋ฒ์งธ์ 1000์ด๋ผ๋ ๊ฐ์ด ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ฐฐ์ด์ Index๋ 0๋ฒ ์งธ ๋ถํฐ ์์ํ๋ค๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
๋ณ์ํธ์์ ์ค๋ช ํ ๋ด์ฉ ์ค, ๋ณ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์์น๋ฅผ ๊ฐ๋ฅดํค๊ณ ์๋ค๊ณ ์ค๋ช ํ ์ ์ด ์์ต๋๋ค. wallet์ ์์น๊ฐ 1000๋ฒ์ ๊ฐ๋ฅดํค๊ณ ์๋ค๋ฉด, intํ์ 4byte์ด๋ฏ๋ก, wallet์ด๋ผ๋ ๋ฐฐ์ด์ ๊ฐ index๋ 1000, 1004, 1008, 1012 ์ ๊ฐ๋ฅดํค๊ฒ ๋ฉ๋๋ค.
์๋์ ์ผ๋ก ๋ณด๋ฉด 1000๋ฒ์ ์์น์์ 0๋ฒ ์งธ, 1๋ฒ ์งธ, 2๋ฒ ์งธ, 3๋ฒ ์งธ์ ์์นํด ์๋ค๋ ๊ฒ์ด์ฃ .
์ฐ๋ฆฌ๋ ์ด์ ํด๋น Index๋ฅผ ๊ฐ๋ฅดํค๋ ๊ฒ์ '์ ๊ทผ(Access)'๋ผ๊ณ ํฉ๋๋ค.
// ๋ฐฐ์ด์ ์ ์ธ
int[] arr = new int[4];
// ๋ฐฐ์ด์ ํ ๋น
int[] brr = {1, 2, 3, 4};
// ์ ๊ทผ, ์คํ ๊ฒฐ๊ณผ : 0, 1
System.out.println("arr[0] = " + arr[0] + ", brr[0] = " brr[0]);
// ์ ๊ทผ ํ ํ ๋น
arr[0] = 2;
brr[0] = 5;
// ์คํ ๊ฒฐ๊ณผ : 2, 5
System.out.println("arr[0] = " + arr[0] + ", brr[0] = " brr[0]);
๋ฐฐ์ด ์ ๋ฆฌ : https://www.notion.so/24jihwan/e710f65bdd964f848ea282dd10107c20
๋ฐฐ์ด | Notion
๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
24jihwan.notion.site
'JAVA > ๊ธฐ๋ณธ ์ด๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8. ๋ฐ๋ณต๋ฌธ - for ๋ฌธ (1) | 2024.02.10 |
---|---|
7. ๋ค์ฐจ์ ๋ฐฐ์ด (Multi Dimensional Array) (1) | 2024.02.10 |
5. ์ฐ์ฐ์(Operator)์ ์ฐ์ฐ ์์ (1) | 2024.02.10 |
3. ์๋ฃํ(DataType) (0) | 2024.01.02 |
2. ๋ณ์(Variable)์ ํ ๋น(Assign) (1) | 2024.01.02 |