불린은 영어로 Boolean 이라고 하며 비교를 통해 true 나 false를 가지는 데이터 타입이다.
주로 사용되는 연산자는 아래와 같다.
A == B |
A와 B가 같다 |
A != B |
A와 B가 같지 않다 |
A > B |
A 가 B 보다 크다 |
A < B |
A가 B 보다 작다 |
A >= B |
A가 B보다 크거나 같다 |
A <= B |
A가 B보다 작거나 같다 |
위 사진처럼 사용할 수 있고 , 비교를 통해 true 나 false를 출력한다. 저 연산자들은 int 외의 다른 데이터 타입에서도 사용이 가능하다.
하지만 문자열을 비교할 때는 주의가 필요하다.
위 예시에서 보면 String a와 b의 값은 같다. 하지만 둘을 == 로 비교했을 때 false가 출력된다.
그 이유는 , == 는 메모리상에서 같은 자리를 가지냐 아니냐만 확인하기 때문이다.
만약 내가 String b를 똑같이 String b = "Hello world" ; 라고 했다면 a와 b는 메모리상에서 같은 자리를 가지고 a == b가 true 가 된다. 하지만 예시에서는 new String을 통해서 새로운 메모리에 "Hello world" 를 넣어주었고 다른 자리를 가지게 되는 것이다.
equals는 메모리 안의 String 값을 읽어서 비교한다. 따라서 String a 와 b의 메모리상 자리가 달라도 그 안의 String을 읽어 비교하기 때문에 a.equals(b) 는 true가 나오게 된다.
따라서 String에서는 == 대신 equal을 쓰는 것이 좋다.
(코드를 짜놓고 다른 사람이 이용을 할 때 항상 String 을 같은 메모리에 배치하도록 할 수 없다. 그렇기 때문에 아예 내용물을 체크하는 equal 이 더 효율적이고 , 그래서 equal을 쓰는 것이 좋은 코드라고 나는 이해를 했다. 아닐 수도 있지만 문자열 비교에서는 항상 equal 을 쓰는 것이라고 이해를 하자.)
나중에 equal에 대해서만 다시 공부할 예정이다.
'관심있는 주제 > Java' 카테고리의 다른 글
반복문(while , for) (0) | 2018.11.09 |
---|---|
조건문(if, switch) + 논리 연산자 (0) | 2018.11.09 |
연산자 (0) | 2018.11.08 |
형 변환 (type conversion) (0) | 2018.11.08 |
데이터 타입 (0) | 2018.11.08 |