answer
== 연산자는 참조주소를 비교
equals() 은 문자열비교
https://velog.io/@ilil1/자바에서-equals와-의-차이
참조주소가 달라서 안의 값이 같아도 다른 것으로 간주
코드에서 check
메서드는 두 배열 a
와 b
가 같은 객체인지 확인하는 데 사용됩니다. 하지만 ==
연산자는 두 배열이 같은 메모리 위치를 가리키는지를 비교합니다. 즉, 내용이 같더라도 서로 다른 배열 객체라면 false
를 반환합니다.
이제 코드를 좀 더 설명해 볼게요:
배열 선언:
int[] a = new int[]{1, 2, 3, 4};
int[] b = new int[]{1, 2, 3, 4};
int[] c = new int[]{1, 2, 3};
여기서 a
와 b
는 서로 다른 배열 객체입니다. 비록 내용이 동일하더라도 두 배열은 각각 다른 메모리 위치에 저장됩니다.
check 메서드:
check(a, b);
: a
와 b
는 서로 다른 배열 객체이므로 "N"이 출력됩니다.check(a, c);
: a
와 c
도 서로 다른 배열 객체이므로 "N"이 출력됩니다.check(b, c);
: b
와 c
역시 서로 다른 배열 객체이므로 "N"이 출력됩니다.결과적으로 이 프로그램은 "NNN"을 출력하게 됩니다