আমি মনে করি আমার উত্তরটি আরও বোধগম্য হতে পারে:
তার মাঝে দুই পার্থক্য আছে &
এবং &&
।
যদি তারা লজিকাল এ্যান্ড হিসাবে ব্যবহার করে
&
এবং &&
যৌক্তিক হতে পারে AND
, যখন &
বা &&
বাম এবং ডান অভিব্যক্তি ফলাফল সব সত্য, পুরো অপারেশন ফলাফলের সত্য হতে পারে।
যখন &
এবং &&
হিসাবে যুক্তিযুক্ত AND
, একটি পার্থক্য আছে:
&&
লজিকাল হিসাবে ব্যবহার করার সময় AND
, যদি বাম প্রকাশের ফলাফলটি মিথ্যা হয়, ডান এক্সপ্রেশন কার্যকর হবে না।
উদাহরণটি ধরুন:
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
অপারেটর হিসাবে ব্যবহার করা যেতে পারে , &&
পারে না।
বিটওয়াইস এবং "&" অপারেটরটি 1 উত্পাদন করে এবং কেবল যদি তার অপারেশনগুলিতে বিট উভয়ই 1 হয় তবে তবে, বিটগুলির উভয় যদি 0 বা উভয় বিট পৃথক হয় তবে এই অপারেটরটি 0 উত্পাদন করে To এবং "&" অপারেটর দুটি বিটের কোনও 1 হলে 1 প্রদান করে এবং বিটগুলির কোনও 0 হলে এটি 0 প্রদান করে।
উইকি পৃষ্ঠা থেকে:
http://www.roseindia.net/java/master-java/java-bitwise-and.shtml