Cevabımın daha anlaşılır olabileceğini düşünüyorum:
Arasında iki fark vardır &
ve &&
.
Mantıksal VE
&
ve &&
mantıksal olabilir AND
, &
veya&&
sol ve sağ ifade sonuçlarının tümü doğru olduğunda, tüm işlem sonucu doğru olabilir.
ne zaman &
ve &&
mantıklıAND
, bir fark vardır:
&&
mantıksal olarak kullanıldığındaAND
, sol ifade sonucu yanlışsa, sağ ifade yürütülmez.
Örneği ele alalım:
String str = null;
if(str!=null && !str.equals("")){ // the right expression will not execute
}
Kullanıyorsanız &
:
String str = null;
if(str!=null & !str.equals("")){ // the right expression will execute, and throw the NullPointerException
}
Başka bir örnek:
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
}
& bit operatörü olarak kullanılabilir
&
Bitwise AND
operatörü olarak kullanılabilir , &&
yapamaz.
Bitsel AND "&" operatörü, yalnızca işlenenlerindeki bitlerin her ikisi de 1 ise, 1 üretir. Ancak, her iki bit de 0 ise veya her iki bit de farklıysa, bu operatör 0 üretir. AND "&" operatörü, iki bitten herhangi biri 1 olduğunda 1 döndürür ve bitlerden herhangi biri 0 ise 0 döndürür.
Wiki sayfasından:
http://www.roseindia.net/java/master-java/java-bitwise-and.shtml