내 대답이 더 이해하기 쉽다고 생각합니다.
&
와 사이에는 두 가지 차이점이 있습니다 &&
.
그들이 논리 AND로 사용하는 경우
&
그리고 &&
논리적 일 수있다 AND
, 할 때 &
또는 &&
좌우 표현이 모두 사실 결과, 전체 연산 결과가 사실이 될 수 있습니다.
때 &
와 &&
논리적으로 AND
, 차이가있다 :
&&
logical로 사용할 때 AND
왼쪽 표현식 결과가 false이면 오른쪽 표현식이 실행되지 않습니다.
예를 들어 보자.
String str = null;
if(str!=null && !str.equals("")){ // the right expression will not execute
}
사용하는 경우 &
:
String str = null;
if(str!=null & !str.equals("")){ // the right expression will execute, and throw the NullPointerException
}
다른 예 :
int x = 0;
int y = 2;
if(x==0 & ++y>2){
System.out.print(“y=”+y); // print is: y=3
}
int x = 0;
int y = 2;
if(x==0 && ++y>2){
System.out.print(“y=”+y); // print is: y=2
}
비트 연산자로 사용할 수 있습니다
&
비트 AND
연산자 로 사용할 수 있습니다 &&
.
비트 AND "&"연산자는 피연산자의 두 비트가 모두 1 인 경우에만 1을 생성합니다. 그러나 두 비트가 모두 0이거나 비트가 모두 다르면이 연산자는 0을 생성합니다. AND "&"연산자는 두 비트 중 하나가 1이면 1을 반환하고 비트 중 하나가 0이면 0을 반환합니다.
위키 페이지에서 :
http://www.roseindia.net/java/master-java/java-bitwise-and.shtml