프로그래밍/JAVA
[Java] equals 메소드
하와이블루
2022. 8. 2. 22:26
728x90
equals메소드는 java.lang 패키지 Object 클래스의 메소드로 객체를 비교하여 같을 경우 true를 다를 경우 false를 반환한다.
class Test
{
public static void main(String[] args)
{
String test1 = new String("문자");
String test2 = new String("문자");
System.out.println(test1.equals(test2)); // true
}
}
그럼 == 와 무슨 차이가 있을까?
== 은 두 변수가 동일한 객체를 참조하는지 여부를 비교하는 것으로 아래 코드를 보면
class Test
{
public static void main(String[] args)
{
String test1 = new String("문자");
String test2 = new String("문자");
System.out.println(test1 == test2); // false
}
}
두 객체를 새롭게 생성하여 다른 객체를 참조하기 때문에 false의 결과가 나온다.
이제 조금 헷갈릴 수 있는 얘기를 해봅시다.
리터럴 표기법으로 두 변수를 선언과 동시에 동일한 문자열 값을 지정해주면 어떻게 될까? 코드를 확인해보자.
class Test
{
public static void main(String[] args)
{
String test1 = "문자";
String test2 = "문자";
System.out.println(test1 == test2); // true
System.out.println(test1.equals(test2)); // true
}
}
이러한 경우에는 "문자"라는 하나의 객체에 두 변수가 참조하고 있는 그림으로 ==, equals 둘다 true인 결과를 반환한다.
728x90