&= Operatörü uygulamak & veya &&Java mı?
Varsayarak
boolean a = false;
Yapıyor diye merak ediyordum:
a &= b;
olur denk
a = a && b; //logical AND, a is false hence b is not evaluated.
ya da diğer yandan anlamına gelir
a = a & b; //Bitwise AND. Both a and b are evaluated.
CEVAP
Java dilinden - 15.26.2 Compound Assignment Operators Şartname.
Formu
E1 op= E2
bileşik atama ifadesiT
sadece bir kez hariçE1
değerlendirilirE1
, türü olduğuE1 = (T)((E1) op (E2))
, eşdeğerdir.
a &= b;
a = a & b;
eşdeğerdir.
(Bazı kullanımları, tip-döküm sonucu için bir fark yaratıyor, ama bu bir b
boolean
olmalı ve tür atama hiçbir şey yapmaz.)
Pratikte, a = a & b;
a = a && b;
arasında fark yok. Eğer b
bir değişken ya da bir sabit ise, sonuç Her iki versiyonu için aynı olacak. Önemsiz olmayan bir ifadeyi olduğunda. b
değerlendirme yan etkileri olabilir sadece semantik bir fark var; yani
Performans tarafı, ticaret-off arasında maliyet değerlendirilmesi b
ve maliyetli bir test ve şube değerinin a
, ve potansiyel tasarruf kaçınarak gereksiz bir atama için a
. Analiz değil düz ileri, ama sürece maliyet hesaplama b
non-önemsiz, Olası performans arasındaki fark iki versiyonu olmak için çok küçük olması dikkate değer.
Java "-by pass-başvuru" veya...
= Operatörü Java...
Neden Java Vector sınıfı eski veya kul...
Java singleton deseni uygulamak için e...
Nasıl Java UTC veya GMT geçerli tarih ...