SORU
11 EKİM 2010, PAZARTESİ


&= 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
11 EKİM 2010, PAZARTESİ


Java dilinden - 15.26.2 Compound Assignment Operators Şartname.

Formu E1 op= E2 bileşik atama ifadesi T sadece bir kez hariç E1 değerlendirilir E1, türü olduğu E1 = (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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007
  • Ty Moss

    Ty Moss

    20 Kasım 2007