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 ANDoperatö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