๐จ๐ปโ๐ป
๋ฐฐ์ด์ ๊ฐ์ ํ์ ์ ์ฌ๋ฌ ๊ฐ๋ค์ ํ๋์ ๋ณ์ ๊ตฌ์กฐ๋ก ๋ฌถ์ ์๋ฃ ๊ตฌ์กฐ์ด๋ค.
๋ฐฐ์ด์ ํฌ๊ฒ 1์ฐจ์ ๋ฐฐ์ด๊ณผ ๋ค์ฐจ์ ๋ฐฐ์ด, ๋ ๊ฐ์ง๋ก ๋๋์ด ์ง๋ค.
๋ง์ฝ ๋ฐฐ์ด์ด ์์ด 1์์ 100 ์ฌ์ด์ ํ์๋ฅผ ๋ณ์๋ก ์ ์ธํด์ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด,
int odd1 = 1;
int odd2 = 3;
int odd3 = 5;
...
int odd50 = 99;
์ด๋ฐ ์์ผ๋ก 50๊ฐ์ ๋ณ์๋ฅผ ๋ชจ๋ ์ ์ธํ๊ณ ๊ฐ์ ํ๋ ํ๋ ๋ฃ์ด์ฃผ๋ ์์
์ด ํ์ํ๋ค
ํ์ง๋ง ๋๋ฌด ๋ฒ๊ฑฐ๋กญ๊ณ ๋์ฑ ํฐ ์๋ฅผ ์์
ํด์ผํ ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ถ๊ฐ๋ฅ ํ ๊ฒ์ด๋ค.
๋ฐฐ์ด์ ์ฌ์ฉํ๋ค๋ฉด?
int[] odd = {1,3,5,7,9, ... 99};
์ด๋ ๊ฒ ๋ฐฐ์ด์ ์ฌ์ฉํ๋ค๋ฉด 50๊ฐ์ ํ์๋ฅผ ์ํ ๋ณ์๋ฅผ ๊ฐ๊ฐ ์ ์ธํ ํ์๊ฐ ์์ผ๋ฉฐ,
odd ๋ผ๋ ํ๋์ ๋ณ์๋ง์ผ๋ก ๋ชจ๋ ํ์๋ฅผ ์ ์ดํ ์ ์๋ค.
๋ฐฐ์ด์ด ๊ฐ์ง ๊ฐ๊ฐ์ ๊ฐ์ ์์ ๋๋ ์์ ๋ผ๊ณ ํ๋ค.
์ด๋ ๊ฒ ๋ฐฐ์ด์ ์ ํ์ง๋ง ๋ฐฐ์ด์ ์์์๋ ์ด๋ป๊ฒ ์ ๊ทผํด์ผํ๋๊ฐ?
์์์ ์์๋ฅผ ํ์ฉํ๋ฉด ๋๋ค, ๋ฐฐ์ด์์ ๋ชจ๋ ์์๋ ์์์ ๋ฐ๋ฅธ ๋ฒํธํ๋ฅผ ๊ฐ์ง๋๋ฐ ๊ทธ๊ฒ์ ์ธ๋ฑ์ค
๋ผ๊ณ ํ๋ค.
์ธ๋ฑ์ค์ ๋งจ ์ฒ์ ์์๋ 1์ด ์๋ 0 ๋ถํฐ ์์ํด์ 1 ์ฉ ์ฆ๊ฐํ๋ค.
์ฆ odd ๋ฐฐ์ด์์ 0์ ์ธ๋ฑ์ค 0๋ฒ์งธ์ ๊ฐ์ธ 1์ด ์ด๋๋ค.
๋ฐฐ์ด์ด๋ฆ[์ธ๋ฑ์ค]
๋ก ๋ฐฐ์ด์ ๊ฐ์ ์ ๊ทผํ ์์๋ค
System.out.println("%d", odd[0]); // return 1
System.out.println("%d", odd[1]); // return 3
1์ฐจ์ ๋ฐฐ์ด์ ์ ์ธ ๋ฐ ์ด๊ธฐํ์ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์
// ํฌ๊ธฐ ํ ๋น & ์ด๊ธฐํ ์์ด ์ ์ธํ๋ ๊ฒฝ์ฐ
// ์ฐธ์กฐ ๋ณ์
int[] arr;
int arr[];
arr ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ์ง๋ง, ์ด๊ฒ์ ๋ฐฐ์ด์ด ์์ฑ๋ ๊ฒ์ด ์๋ ์ฐธ์กฐ ๋ณ์๋ฅผ ์ํ ๊ณต๊ฐ์ ๋ง๋ ๊ฒ์ด๋ค.
์์์ฒ๋ผ arr
์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ค.
์ด arr
๋ ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง ์์น๋ฅผ ๊ธฐ์ตํ๋ ์ฐธ์กฐ ๋ณ์๋ก ์์ง ๋ฐฐ์ด์ด ์์ฑ๋๊ฒ์ ์๋๋ค.
์ฐธ์กฐ ๋ณ์๋ผ ํ๋ฉด ์ฐธ์กฐ ํ์
์ ๊ฐ์ ์ ์ฅํ๊ณ ์๋ ๋ณ์๋ฅผ ์๋ฏธํ๋ค.
์ฆ, ๋ณ์๊ฐ ๊ฐ ์์ฒด๋ฅผ ์ ์ฅํ ๊ฒ์ด ์๋๋ผ ๊ทธ ๊ฐ์ด ์กด์ฌํ๋ ์์น์ ์์ ์ฃผ์๋ฅผ ์ ์ฅํ๋ค.
arr
๋ ์ ์ฐธ์กฐ ๋ณ์์ฌ์ผ ํ๋?
๋ณ์๋ฅผ ์ ์ธํ๋ค๋ ๊ฒ์ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ฐ์ ์ ์ฅํ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ์ด๋ฆ ๋ถ์ด๋ ๊ฒ์ด๋ค.
int age;
์ ๊ฐ์ด ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ์ปดํจํฐ๋ ๋ฐ์ดํฐ ํ์
์ด intํ์์ ์ธ์งํ๊ณ , ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ 4byte๋งํผ ํ๋ณด ํ, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ age๋ผ๋ ์ด๋ฆ์ ๋ถ์ด๋๊ฒ์ด๋ค.์ ์ํ, ์ค์ํ, ๋ฌธ์ํ, ๋
ผ๋ฆฌํ ๋ฑ์ ๊ธฐ๋ณธ ํ์
์ ์ ํด์ง ๋ฐ์ดํฐ ํ์
์ ํฌ๊ธฐ๊ฐ ์กด์ฌํ๋ค.
* intํ์ 4byte, doubleํ์ 8byte, charํ์ 2byte์ธ ๊ฒ์ฒ๋ผ ๊ธฐ๋ณธ ํ์
์ ๊ฐ๊ฐ์ ํ์
๋ณ๋ก ํฌ๊ธฐ๊ฐ ์ ํด์ ธ์๋ค.
๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ์ ํด์ ธ์์ง ์๋ค.
* ์ด๋ค ๋ฐฐ์ด์ intํ์ ์์๋ฅผ 5๊ฐ ๊ฐ์ง ๋ฐฐ์ด์ผ์ ์๊ณ , ์ด๋ค ๋ฐฐ์ด์ doubleํ์ ์์๋ฅผ 500๊ฐ ๊ฐ์ง ๋ฐฐ์ด์ผ ์๋ ์๋ค, ๋ํ ๊ธธ์ด๊ฐ ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ๋ฌธ์์ด 500๊ฐ๋ฅผ ๊ฐ์ง ๋ฐฐ์ด์ผ ์ ์๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋ฐฐ์ด์ด ์ ์ธ๋๋ ์์ ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ์ ์์ผ๋, ๋ฐฐ์ด์ ๊ฐ๋ฆฌํค๋ ๋ฒผ์๋ ๋ฐฐ์ด์ด ์์ฑ๋๊ณ ๋์ ๋ฐฐ์ด์ด ์์นํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉฐ, ์ด์ฒ๋ผ ๊ฐ์ด ์์นํ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์๋ ๋ณ์๋ฅผ ์ฐธ์กฐ ๋ณ์๋ผ๊ณ ํ๋ค.
// ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ
int[] arr1 = new int[5]; // arr -> {0, 0, 0, 0, 0}
// ๋ฐฐ์ด์ ์์์ ๊ฐ์ ์ง์ ํ์ง์์ผ๋ฉด, ๊ฐ ์์๋ ํด๋น ํ์
์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์๋์ผ๋ก ์ฑ์์ง๋ค.
//์ ์ธ ํ ์ด๊ธฐํ
int[] arr;
arr = new int[3]; // arr -> {0, 0, 0}
//์ ์ธ ๋์์ ๊ฐ์ ๋ฃ์ด ์ด๊ธฐํ
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr1 = new int[] {1, 2, 3, 4, 5}; // arr1 -> {1, 2, 3, 4, 5}
๋ฐฐ์ด์ ์์ฑํ๊ธฐ ์ํด์๋ new ๋ฐ์ดํฐํ์
[๋ฐฐ์ดํฌ๊ธฐ]
๋ฅผ ์
๋ ฅํด์ผ ํ๋ค.
new int[5]
๋ '์ ์ํ ์์๋ฅผ 5๊ฐ ๊ฐ์ง ๋ฐฐ์ด์ ๋ง๋ค์ด๋ผ'๋ผ๋ ์๋ฏธ๊ฐ ๋๋ค.
๋ฐฐ์ด์ด๋ฆ.length
๋ก ๋ฐฐ์ด์ ๊ฐ์ง ์์์ ๊ฐฏ์, ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ์ ์ ์๋ค.
int[] arr = new int[5];
System.out.println("%d", arr.length) // 5
๋ฐฐ์ด์ ๊ธธ์ด๋ ๋ง์ง๋ง์ +1์ ํ ๊ฒ๊ณผ ๊ฐ๋ค, ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ด๋ค
2์ฐจ์ ๋ฐฐ์ด์ ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ์ค์ฒฉ๋ ๋ฐฐ์ด์ ๋ปํ๋ค.
์ด๋ค ๋ฐฐ์ด A๊ฐ ์์ ์ ์์๋ก ๋ ๋ค๋ฅธ ๋ฐฐ์ดB, C, D๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด, ๋ฐฐ์ด A๋ 2์ฐจ์ ๋ฐฐ์ด์ด๋ค.
// ์ฐธ์กฐ ๋ณ์๋ฅผ ํ ๋นํ๋ ๊ณต๊ฐ ํ๋ณด
//ํฌ๊ธฐ ํ ๋น ๋ฐ ์ด๊ธฐํ ์์ด ์ ์ธ๋ง ํ๋ ๊ฒฝ์ฐ
int[][] arr;
// ๋ถ๊ฐ๋ฅ ์์
int arr[][];
//2์ฐจ์ ์ด์ ๋ฐฐ์ด์ ๋ง๋ค๋ []๋ง ์ถ๊ฐํ๋ฉด ๋๋ค.
//3์ฐจ์ ๋ฐฐ์ด ์ ์ธํ๋ ๊ฒฝ์ฐ
int[][][] arr;
// ์ ์ธ๊ณผ ๋์์ ๋ฐฐ์ด ํฌ๊ธฐ ์ง์ ํ ๊ฒฝ์ฐ
int[][] arr = new int[2][3];
// ๋ฐฐ์ด์ ์๋์ฒ๋ผ ์ด๊ธฐํ๊ฐ ๋๋ค.
{
{0, 0},
{0, 0},
{0, 0}
}
// ์ ์ธ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ง์ ํด 0์ผ๋ก ์ด๊ธฐํ ํ๋ ๊ฒฝ์ฐ
int[][] arr;
arr = new int[2][3]; // ์ ์ธ ํ ์ด๊ธฐํ ํ๋ ๊ฒฝ์ฐ, new int[][]๋ฅผ ์๋ต ๋ถ๊ฐ
// ์ ์ธ๊ณผ ๋์ ์ด๊ธฐํํ๋ ๊ฒฝ์ฐ
int[][] arr = {{1, 3, 5}, {2, 4, 6}} // new int[][] ์๋ต ๊ฐ๋ฅ
int[][] arr = new int[][] {{1, 3, 5}, {2, 4, 6}};
// ๋ฐฐ์ด ์๋์ ๊ฐ์ด ์ด๊ธฐํ๊ฐ ๋๋ค.
{
{1, 3, 5},
{2, 4, 6}
}
new ํค์๋์ ์ง์ ๋ ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํด์ ๋ฐฐ์ด์ ์ ์ธํ๋ฉด, ์ฒซ๋ฒ์งธ ์ง์ ๋ ํฌ๊ธฐ๋งํผ 0์ผ๋ก ์ด๊ธฐํ๋ ์ํ์ ๋ฐฐ์ด์ด ๋ง๋ค๊ณ ๊ทธ ๋ด๋ถ์ ๋๋ฒ์งธ ํฌ๊ธฐ๋งํผ 0์ผ๋ก ์ด๊ธฐํ๋ ์ํ์ ๋ฐฐ์ด์ด ๋ง๋ค์ด์ง๋ค.
์ฒซ๋ฒ์งธ ํฌ๊ธฐ๋ก ์ง์ ๋ ๋ฐฐ์ด์ ๋๋ฒ์งธ ํฌ๊ธฐ๋ก ์ง์ ๋ ๋ฐฐ์ด์ ์ฐธ์กฐ๊ฐ์ ๊ฐ์ง๊ณ ์์ด ๋๋ฒ์งธ ๋ฐฐ์ด์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ค.