728x90
반응형
equals()와 == 차이점과 equals()를 사용하는 이유
equals()와 = =는 내용을 비교한 값을 boolean type(true false)로 반환하는 공통점이 있습니다.
하지만 이 두개는 많은 차이점을 가지고 있습니다.
아래의 코드는 a와 b 둘다 문자열 "aa" 를 가지고 있습니다.
public static void main(String[] args) {
String a = "aa";
String b = new String("aa");
// ==
if(a == b) {
System.out.println(" == 일치!");
}else {
System.out.println(" == 불일치!");
}
// .equals()
if(a.equals(b)) {
System.out.println(" equals 일치!");
}else {
System.out.println(" equals 불일치!");
}
}
위의 결과는 아래와 같다.
이유는
"==" 연산자는 비교하는 대상들의 주소를 비교 하고,
(기본타입의 같은 문자를 담게되면 같은 주소가 나오고, 객체를 새로 생성하는 경우 다른 주소가 나온다.)
"equals()" 메소드는 객체의 내용끼리 비교 할 수 있게 해줍니다.
간단한 테스트를 해보았다.
위 두 코드의 실행결과를 아래서 확인하면 a와 b의 주소가 같다는 것을 확인 할 수 있다.
728x90
반응형
'Web Programming > JAVA' 카테고리의 다른 글
Java / 1부터 100까지 소수합 구하기 (0) | 2021.07.29 |
---|---|
Java란? / 객제지향언어 / 캡슐화, 상속성, 다형성 (0) | 2021.07.26 |
일반 for문 반복 횟수 / 향상(개선) for문 / Break; (0) | 2021.07.23 |