[JAVA] equals,== 차이

chanyoun·2023년 1월 19일
0

equals,

  • equals는 메소드이며, 객체끼리 내용을 비교할때 사용한다.

==

  • == 는 비교를 위한 연산자이다.

String 타입 equals,== 차이점

  • equals 메소드는 대상의 내용자체를 비교하지만
    ==는 비교하고자하는 대상의 주소값을 비교한다.
	String a = "aa";
    String b = a;
    String c = new String("aa");

    System.out.println(a.equals(b)); // true
    System.out.println(a==b);//true
    System.out.println(a==c);//false
    System.out.println(a.equals(c));//true

위 코드에서 보면 a==c 에서만 false 가 나오는것을 알수있다.
이러한 이유는 a와 c의 내용자체는 같지만 heap영역에 저장되어있는 주소값이 다르기때문이다.

그외
a.equals(b) -> a와 b의 내용이 같으므로 true
a==b -> a와 b의 주소값이 같으므로 true
a.equals(c) -> a와 c의 내용이 같으므로 true 가 출력되는것이다.


primitive 타입 ==

  • 비교 대상 중 primitive type(int) 의 변수가 하나라도 있다면, == 연산자는 값으로 비교한다
profile
기록은 힘들어

0개의 댓글