자바의 정석에 보면 밑의 예제가 있습니다.
class ArrayEx6{
public static void main(String[] args){
int[] number = new int[10];
int[] counter = new int[10];
for(int i=0; i < number.length; i++)
System.out.println(number[i] = (int)(Math.random() * 10));
System.out.println();
for(int i=0; i<number.length; i++)
counter[number[i]]++;
for(int i=0; i<number.length; i++)
System.out.println(i+"의 개수 : "+counter[i]);
}
}
위의 출력결과가 어떻게 될까요?? 난수를 생성해서 출력하고 있는데, 질문이 어처구니 없다고 생각하시겠죠 ㅎㅎ;;;
사실 저 코드중에 제가 좀 당황하고 있던 부분은
counter[number[i]]++;
이 부분입니다.
반복문을 통해서 i가 10까지 증가하게 하면서 number[i] 의 위치에 있는 counter 배열을 증가시킨다라..
뭔 말인가 생각하고 구현해서 소스를 보고도 이해를 잘 못하고 있던 중에
내가 counter가 기본타입의 변수로 오해하고 있구나라는 생각을 하였습니다.
counter는 특정 주소를 가리키고 있는 integer타입의 변수입니다.
integer타입의 변수는 default 초기화는 0이죠.
counter[n] 은 counter 참조변수가 가리키고 있는 4byte의 메모리 블록들의 가장 선두로부터 n번째에 위치한
value 입니다. (integer는 4byte의 메모리를 가집니다.)
따라서 counter[n]++ 는 value 자체를 1 증가시키는 것입니다.
와... 이 쉬운 기초를 또 너무 어렵게 해석해서 풀이하고 있네요 ㅎㅎ.
작성자가 심각한 초보임을 이해해주세요 ㅠㅠ
결과는 직접 작성해서 확인해보셔요 :)
class ArrayEx6{
public static void main(String[] args){
int[] number = new int[10];
int[] counter = new int[10];
for(int i=0; i < number.length; i++)
System.out.println(number[i] = (int)(Math.random() * 10));
System.out.println();
for(int i=0; i<number.length; i++)
counter[number[i]]++;
for(int i=0; i<number.length; i++)
System.out.println(i+"의 개수 : "+counter[i]);
}
}
위의 출력결과가 어떻게 될까요?? 난수를 생성해서 출력하고 있는데, 질문이 어처구니 없다고 생각하시겠죠 ㅎㅎ;;;
사실 저 코드중에 제가 좀 당황하고 있던 부분은
counter[number[i]]++;
이 부분입니다.
반복문을 통해서 i가 10까지 증가하게 하면서 number[i] 의 위치에 있는 counter 배열을 증가시킨다라..
뭔 말인가 생각하고 구현해서 소스를 보고도 이해를 잘 못하고 있던 중에
내가 counter가 기본타입의 변수로 오해하고 있구나라는 생각을 하였습니다.
counter는 특정 주소를 가리키고 있는 integer타입의 변수입니다.
integer타입의 변수는 default 초기화는 0이죠.
counter[n] 은 counter 참조변수가 가리키고 있는 4byte의 메모리 블록들의 가장 선두로부터 n번째에 위치한
value 입니다. (integer는 4byte의 메모리를 가집니다.)
따라서 counter[n]++ 는 value 자체를 1 증가시키는 것입니다.
와... 이 쉬운 기초를 또 너무 어렵게 해석해서 풀이하고 있네요 ㅎㅎ.
작성자가 심각한 초보임을 이해해주세요 ㅠㅠ
결과는 직접 작성해서 확인해보셔요 :)
'Programming > JAVA' 카테고리의 다른 글
java : interface와 abstract를 이용해서 자손클래스들에게 바른 길을 안내해주세요. (0) | 2011.05.06 |
---|---|
java : 상속관계의 참조변수 대입 쉽게 이해하기.(형변환, 다형성 등) (2) | 2011.04.28 |
java : 대체 객체가 뭐죠? instance 가 뭡니까? (0) | 2011.04.24 |
java : public final static Color WHITE = new Color(255, 255, 255); 문제점 (0) | 2011.04.21 |
java : method의 참조형 매개변수에 대해 쉽게할 수 있는 오해. (2) | 2011.04.12 |