기본적으로 자바에서 스트링을 비교할 때 eqauls() 함수 또는 == 식을 이용한다.
둘 다 boolean값을 리턴해준다는 공통점이 있지만 차이점이 존재한다.
형태의 차이
equals()는 객체끼리 내용(값)을 비교할 수 있는 '메소드'이다.
==는 객체의 참조(주소)값을 비교하는 '연산자'이다.
비교방식의 차이
앞서 말했듯이 equals()는 내용 자체를 비교하고, ==는 주소를 비교한다.
이는 Call By Reference, Call By Value에 대한 이해가 필요하다.
예를 들어, 다음과 같은 문자열을 생성한다.
String a = "Test";
String b = a;
String c = new String("Test");
변수 a, b, c 모두 "Test"라는 내용을 가지고 있지만, 주소값은 다르다.
a와 b는 같은 주소의 값을 할당 받고, c는 다른 주소를 할당 받는다.
이를 비교했을 경우,
equals() 함수를 사용할 경우 모두 같다고 나오지만
== 연산자를 사용할 경우 a와 b는 같지만 c는 다르다고 출력되는 것을 볼 수 있다.
※ 출처 :
http://ojava.tistory.com/15
http://postitforhooney.tistory.com/entry/Java자바자바에서-스트링-비교하기equals와-의-차이점
'Programming > Java & JSP & Spring' 카테고리의 다른 글
[SpringBoot] 스프링 부트 시작하기 전에 (0) | 2017.07.12 |
---|---|
[Spring] 기본 초기 셋팅 (0) | 2017.07.05 |
Spring Boot(스프링부트)를 왜 사용해야 하는가? (0) | 2017.07.05 |
[Java] 문자열 자르기 ( split() / StringTokenizer ) (0) | 2017.04.26 |
[Java] String 클래스에서 특수문자 인식 (1) | 2017.03.24 |