-
[Java] equals 메소드프로그래밍/JAVA 2022. 8. 2. 22:26728x90
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'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 반복문 for (0) 2022.08.03 [Java] 반복문 while (0) 2022.08.03 [Java] 조건문 switch (0) 2022.08.02 [Java] 조건문 if (0) 2022.08.02 [Java] Math 클래스 (0) 2022.08.01