본문 바로가기

Java

Java Reference Address

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