2008년 12월 23일 화요일

자바에서 "==" 와 equals Method 차이점

자바에서
1. 원시 값 2개가 같은지 알아야 할 경우
2. 레퍼런스 변수 두개가 힙에 들어 있는 같은 객체를 참조하는지 알아야 할 경우

"==" 연산을 사용한다.

원시값 비교 : int a = 3; int b = 3; if(a==b) { // 참 }
레퍼런스 비교 :
Foo a = new Foo();
Foo b = new Foo();
Foo c = a;
if(a == b) { // 거짓 }
if(a == c) { // 참 }
if(b == c) { // 거짓 }
=====================================================================
객체가 동일한지를 알아내야 할경우

".equals() " 메써드를 사용한다.

equals 는 각 객체의 주소값인 HashCode 값이 동일 한 경우 참을 Return

틀린경우 False를 Return 한다 '

============================================

자바에서 "=="의 값 비교는 스택에 있는 순수원시 값을 비교하며,
equals Method는 힙에 있는 자바 객체의 주소값이 같은지 틀린지를 비교한다 ... "끝"

댓글 없음: