본문 바로가기
반응형
Java

[Java] == 연산자, equals() 차이점 - 문자열 비교

by brightGarden02 2022. 12. 12.

== 연산자, equals() 메소드의 차이점을 정리하고자 한다.

 

== 연산자는 주소값을 비교한다.

public static void main(String[] args) {

   String s1 = "abc";
   String s2 = new String("abc");

   if(s1 == s2) {
      System.out.println("두개의 주소값이 같습니다.");
   } else {
      System.out.println("두개의 주소값이 다릅니다.");
   }

 

 

따라서 주소값이 다르므로 다음과 같이 출력된다.

 

 

 

 

반면에 equals() 메서드는 값을 비교한다.

public static void main(String[] args) {

   String s1 = "abc";
   String s2 = new String("abc");

   if(s1.equals(s2)) {
      System.out.println("두개의 값이 같습니다.");
   } else {
      System.out.println("두개의 값이 다릅니다.");
   }

 

 

 

값이 같으므로 다음과 같이 출력된다. 

 

 

 

public final class String 안에 있는

equals() 메소드는 지정된 객체와 비교한다고 설명되어 있다. 값을 비교한다는 것을 알 수 있다.

 

 

 

StringLatin1.equals() 내부는 다음과 같다

길이가 같은지 비교하고

byte 하나하나가 같은지 for문을 돌면서 if를 통해 비교한다.

 

댓글


반응형
반응형