일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- LG전자
- 토익이메일
- 화승엔터프라이즈
- 영어메일
- 다우산업
- 국제유가
- Python
- 영어메일쓰기
- Intent
- 다우
- 파이썬
- android
- 금리인상
- e-mailwriting
- 트럼프
- ruby
- 어학·외국어
- englishwriting
- 사드보복완화
- 네마녀의날
- Java
- 안드로이드
- 무역전쟁
- 나스닥
- dataframe
- 주식시황
- toeice-mail
- S&P
- 시황
- 셀트리온
- Today
- Total
Developer MJ Story
[Java/Android] &, &&, |, || 연산에 대한 모든것과 활용 방안 본문
안녕하세요.
집근처 개발자 입니다.
오늘은 아주아주 기본 적이지만 아주아주 햇갈리는 &(and), |(or)연산에 대해 설명 드릴까 합니다.
어쩔때 &을 쓰고, 어쩔때는 &&를 쓰고........
개발자 마음대로 쓰는 것일까요??ㅋ
그건 아니고 아주아주 유용하게 사용할 수 있습니다.
먼저 &와 && 차이를 알려 드리겠습니다.
A & B 는 A가 false 이더라도 B까지 확인 합니다.
A && B는 A가 false 면 B까지 확인하지 않고 바로 false로 판단합니다.
이것이 무슨 차이가 있는 것일 까요??
아래 코드를 보시면 차이가 있을 알 수 있으실 것입니다.
아래와 같이 코딩을 할 경우 어떻게 될까요?
A.equals("a")에서 이미 false이지만 & 연산은 B.equals.("b") 연산까지 하기 때문에 java.lang.NullPointerException이 발생하겠죠?
String A = "A"; String B = null; if(A.equals("a") & B.equals("b")){ return true; }
그런데, 아래와 같이 && 연산을 할 경우 A.equals.("a")에서 false로 판단되서 B.equals.("b")를 연산하지 않기 때문에 java.lang.NullPointerException 발생하지 않겠죠?
String A = "A"; String B = null; if(A.equals("a") && B.equals("b")){ return true; }
저는 이렇게 사용합니다.
조건문 수식을 세울때 해당 객체가 null인지 아닌지 확인할 때 자주 사용합니다.
이렇게 해놓으면 NullPointerException 예방 효과를 갖질 수 있습니다.
아래 코드는 android에서 bluetooth device를 검색해서 name을 받아 오는데 내가 아는 이름인지 확인 하는 조건문입니다.
아래와 같이 하지 않고 그냥 아래와 같이 하나의 조건문 수식만 넣을 경우 name 객체가 null 이면 NullPointerException이 발생하죠.
device.getName().equals(DEVICE_NAME)
if(device.getName() != null && device.getName().equals(DEVICE_NAME))
내가 만든 객체라서 100% 보장되는 객체에 대한 조건문 수식이 아닌 경우 보험드는 차원에서 && 연산으로 null check해주시면 좋겠죠?
아! 그리고, |, || 연산도 동일하니 생략합니다!
문의 사항이 있으시면 덧글을 남겨 주세요~ㅋ
'Software > Java' 카테고리의 다른 글
[Java] Comparator를 이용해 정렬 Sort (0) | 2017.06.28 |
---|---|
[Java/Thread] Thread를 구현하는 두 가지 방식 extends vs implements 뭐가 더 좋은가? (0) | 2014.07.23 |
[Java/Thread] Java Thread 바로 종료 시키기 – interrupt() (0) | 2014.07.22 |
[Java/Excel POI] POI apache cell 서식 적용 하는 방법 (1) | 2014.07.16 |
[Java/Arrays] java Arrays class를 활용한 object 정렬(sorting) (0) | 2014.07.10 |