Backend/Java
[Java] 문자열 비교 : ==와 equals()의 차이
unknownomad
2022. 1. 11. 23:12
== 연산자
- 비교하고자 하는 두 개의 대상의 주소값을 비교
public class compare {
public static void main(String[] args) {
String s1 = "abcd";
String s2 = new String("abcd");
if(s1 == s2) {
System.out.println("두 개의 값이 같다.");
} else {
System.out.println("두 개의 값이 같지 않다.");
}
}
}
//결과 : 두 개의 값이 같지 않다.
equals()
- String 클래스의 equals() 메소드
- 비교하고자 하는 두 개의 대상의 값 자체를 비교(주소값 비교 X)
public class compare {
public static void main(String[] args) {
String s1 = "abcd";
String s2 = new String("abcd");
if(s1.equals(s2)) {
System.out.println("두 개의 값이 같다.");
} else {
System.out.println("두 개의 값이 같지 않다.");
}
}
}
//결과 : 두 개의 값이 같다.
기본형 | 참조형 |
* Call by Value 형태 * 기본적으로 대상에 주소값을 가지지 않는 형태 * int형, char형 등 |
* Call by Reference형(생성 시 주소값 부여) * String : 일반적인 타입이 아닌 클래스 ➡ String 타입 선언 시 같은 값을 부여하더라도 서로 간의 주소값이 다름 |