5. == vs equals
* 비교연산자 탐구 : ==과 equals라는 method를 사용할 때 차이
- 자바에는 여러가지 데이터 타입이 존재 > primitive / non primitive로 구분 가능
> primitive : 원시 데이터, 더 이상 쪼갤 수 없는 타입 (boolean, int, double, short, long, float, char)
> non primitive : 그렇지 않은 데이터 타입(String, Array, Date, File...)
- 자바는 primitive 타입과 non primitive 타입을 차별함
- primitive 타입의 경우,
int p1 = 1 이고, int p2 = 1 이라면 p1 == p2 > true 가 나옴
- non primitive 타입의 경우,
String o1 = new String("java")이고, String o2 = new String("java")라면,
o1 == o2 : 동등 연산자로 판단할 경우에는 다른 곳에 위치하기 때문에 false가 나옴
o1.equals(o2) : equals로 판단할 경우에는 같은 내용이기 때문에 true가 나옴
* 즉, 원시 데이터 타입을 판단할 때는 동등 비교 연산자를,
원시 데이터 타입이 아닌 것을 쓸 때는 equals를 사용하면 된다.
> but, String은 자주 사용하기 때문에 특혜를 받음
String o3 = "java2"이고, String o4 = "java2"일 때 o3 == o4처럼 동등 계산을 해보면 true가 나옴.
'Java' 카테고리의 다른 글
생활코딩 JAVA 제어문 - 종합응용 (0) | 2022.12.20 |
---|---|
생활코딩 JAVA 제어문 - 반복문과 배열 (0) | 2022.12.15 |
생활코딩 JAVA 제어문 - 조건문 (0) | 2022.12.13 |
생활코딩 JAVA 제어문 - 비교연산자 (0) | 2022.12.13 |
생활코딩 JAVA 제어문 - Boolean data type (0) | 2022.12.13 |