C에서 처럼 data의 주소값을 찾기 위해 검색하다 보니
System.identityHashCode를 사용하면 주소값을 찾을 수 있다고 해서
연습용 코드에 적용해 보니
package section;
public class ArrayCreateValueListExam {
public static void main(String[] args) {
int[] scores;
scores = new int[] {83, 90, 87};
int sum1 = 0;
for(int i : scores) {
sum1 += i;
System.out.printf("%d,%08X\n",i,System.identityHashCode(i));
}
System.out.print("총합 : "+sum1);
System.out.printf(" ,%08X\n",System.identityHashCode(sum1));
}
}
83,058CEFF1
90,402F32FF
87,573F2BB1
총합 : 260 ,5AE9A829
int Array라면 주소값이 연속적인 값이 나와야 하지만 연속적이지 않다.
System.identityHashCode는 이름처럼 hash code 일 뿐이지 메모리의 주소값이 아니다.
C처럼 메모리에 직접 접근 할 필요가 없기 때문에 이렇게 hash만 확인 할 수 있는 듯 하다.
'Java' 카테고리의 다른 글
안드로이드 Blackbox Project UML (0) | 2022.07.18 |
---|