What can go wrong if you replace && with & in the following code
Java’ da ‘&&’ işlemi mantıksal ‘and’ operator işlemi iken ‘&’ işlemi bit tabanlı ‘and’ operator işlemidir. Yani ‘&&’ bunu yazarsanız verilen iki seçeneğe bakıp ona göre işlemi nasıl devam ettireceğini bulur ama ‘&’ böyle bir işlem verildiğinde verilen değerlerin bit karşılıklarını alıp ‘and’ işlemine tabi tutup sonucu öyle hesaplar. Yani aslında matematiksel olarak bir ‘and’ işlemini ‘&’ operatörü ile yapmış oluruz. Aşağıdaki verilen örnekteki ‘&&’ operatorünü ‘&’ değiştirdiğimiz takdirde bit tabanlı bir ‘and’ işlemi yapılamayacağından null pointer exception verecektir:
String a=null;
if (a!=null && a.length()>10) {
.
.
.
}