1. 메모리의 배열
이전 예에서는 그림이 약간 부정확했습니다.
배열을 생성할 때(문자열을 생성할 때와 같이) 두 개의 개별 메모리 블록이 할당됩니다. 하나는 배열 ( 컨테이너) 자체를 저장하기 위한 것이고 두 번째 블록은 주소 를 저장하는 변수를 위한 것입니다 . 아래 그림은 이 설명을 나타냅니다.
요소 배열에 할당된 메모리 10
int
와 배열 의 주소를int[]
저장하는 변수는 녹색으로 표시됩니다.int
int
비교를 위해 값을 저장하는 일반 변수는 199
파란색으로 표시됩니다.
이것은 문자열을 메모리에 저장하는 것과 약간 비슷하다고 생각하지 않습니까?
맞습니다, 문자열입니다. 문자열로 작업할 때와 마찬가지로 배열 변수를 서로 할당할 수 있습니다.
암호 | 설명 |
---|---|
|
요소 배열을 만듭니다 10 int . index 가 있는 셀에 값을 할당합니다 . index 가 있는 셀에 값을 할당합니다 . 변수 에는 변수 에 저장된 주소를 저장합니다 . 이제 메모리에 있는 동일한 배열 개체를 가리킵니다 . 인덱스가 있는 배열 개체의 셀에서 셀 (값 저장 )과 셀(값 저장 ) 에 저장된 값의 합계를 작성합니다 . 4 2 9 7 b a a b 9 2 4 7 9 |
배열 개체는 원래 위치에 그대로 유지되며 및 a
변수 b
는 동일한 개체에 대한 동일한 주소(참조)를 저장합니다. 사진을 봐:
2. 어레이 작업에 대한 자세한 내용
절대적으로 모든 유형의 요소 배열을 만들 수 있습니다. 이렇게 하려면 유형 이름 뒤에 대괄호를 쓰면 됩니다. 일반적으로 배열을 만드는 것은 다음과 같습니다.
type[] name = new type[number];
여기서 type은 배열에 저장할 요소의 유형입니다. Name 은 배열을 참조하는 데 사용할 변수의 이름이고 number 는 배열의 셀 수입니다.
위의 예는 배열 변수 및 배열 개체를 만들기 위한 표준 형식입니다. 실제로 이들은 두 개의 개별 엔티티입니다.
배열 객체와 별도로 배열 변수를 만들 수 있습니다.
type[] name;
name = new type[number];
그리고 중요하지 않은 한 가지 더:
예:
암호 | 설명 |
---|---|
|
n 요소 배열 만들기 |
|
203 요소 가 있는 배열 만들기 |
|
|
0..99
. ArrayIndexOfBoundException
, 인덱스가 배열 범위 밖에 있음을 의미합니다.
3. 어레이 길이
이전 예제에서 본 것처럼 배열 변수를 자체적으로 생성한 다음 나중에 코드 어딘가에 값(배열 개체에 대한 참조)을 할당할 수 있습니다. 다음과 같이 할 수도 있습니다.
암호 | 설명 |
---|---|
|
형식이 인 배열 변수를 만듭니다 . 변수가 보다 작은 int[] 경우 요소 의 배열을 만듭니다 . 그렇지 않으면 요소 배열을 만듭니다. a 10 10 20 |
이제 그러한 배열로 무엇을 할 수 있습니까? 얼마나 많은 요소가 있는지 어떻게 알 수 있습니까?
이를 돕기 위해 배열에는 이라는 특수 속성(변수)이 있습니다 length
. 다음 표현식을 사용하여 배열의 길이를 찾을 수 있습니다.
array.length;
다음 array
은 배열 변수의 이름이고 는 length
배열 속성의 이름입니다. 속성 값은 length
변경할 수 없습니다. length
속성 자체는 다른 변수에 할당할 수 있지만 아무 것도 할당할 수 없습니다(이렇게 하면 프로그램이 컴파일되지 않습니다).
다음과 같이 이전 예제를 계속할 수 있습니다.
암호 | 설명 |
---|---|
|
형식이 인 배열 변수를 만듭니다 . 변수가 보다 작은 int[] 경우 요소 의 배열을 만듭니다 . 그렇지 않으면 요소 배열을 만듭니다. 배열의 모든 요소에 대해 반복합니다: from to length a 10 10 20 0 array.length - 1 |
4. Java의 배열에 대한 사실 요약
배열에 대해 알고 있는 내용을 요약해 보겠습니다.
사실 1. 배열은 많은 셀로 구성됩니다.
사실 2. 특정 셀의 번호(인덱스)를 이용하여 접근합니다.
사실 3. 모든 세포는 같은 유형입니다.
사실 4. 모든 셀의 초기 값은 0(셀이 숫자를 저장하는 경우), null
(셀이 개체 참조를 저장하는 경우) 또는 false
(셀이 boolean
값을 저장하는 경우)입니다. 이 장에서 기본값에 대해 자세히 알아볼 것입니다 .
사실 5. String[] list
변수의 선언일 뿐입니다. 이것은 컨테이너(배열 객체) 자체를 생성하지 않습니다. 변수를 사용하려면 먼저 배열(컨테이너)을 생성하고 변수에 할당해야 합니다. 아래 예를 참조하십시오.
사실 6. 배열 객체(컨테이너)를 생성할 때 크기, 즉 포함하는 셀 수를 표시해야 합니다. 이것은 다음과 같은 명령문으로 수행됩니다: new TypeName[n]
;
사실 7. 배열의 길이는 .length
속성을 사용하여 찾을 수 있습니다.
사실 8. 배열을 만든 후에는 요소의 유형이나 저장하는 요소의 수를 변경할 수 없습니다.
암호 | 설명 |
---|---|
|
s 이다 null list _null |
|
변수 는 요소 list 로 구성된 문자열 배열인 개체에 대한 참조를 저장합니다 10 . n ~이다10 |
|
이제 요소 |
|
예외(프로그램 오류)가 발생합니다. 즉, 프로그램이 충돌합니다. list 에 대한 참조를 저장null |
|
범위를 벗어난 배열 예외(프로그램 오류)가 생성됩니다. a가 요소/셀을 list 저장하는 경우 10 유효한 색인은 다음과 같습니다. 0 1 2 3 4 5 6 7 8 9 — 10 요소. |
GO TO FULL VERSION