SORU
11 Aralık 2013, ÇARŞAMBA


Dizeler ve karakter birleştirme

Aşağıdaki ifadeleri

String string = "string";   

string = string  ((char)65)   5;
System.out.println(string);

Çıkış stringA5 üretmek.


Aşağıdaki ancak

String string = "string";

string  = ((char)65)   5;
System.out.println(string);

string70 üretmek.

Fark nerede?

CEVAP
11 Aralık 2013, ÇARŞAMBA


Operatör önceliği ve dize dönüştürme kombinasyonu sonucu bu davranış bakın.

JLS 15.18.1 devletler:

Eğer tek bir işlenen ifade türü Dize ise, o zaman dize dönüştürme (§5.1.11) zamanında bir dize üretmek için diğer işlenen gerçekleştirilir.

Bu nedenle ilk ifadede işlenen örtülü olarak dize dönüştürülür sağ el: string = string ((char)65) 5;

string = ((char)65) 5; ancak ikinci ifade için = bileşik atama operatörü birlikte göz önünde bulundurulmalıdır. = , operatör fonksiyonu daha zayıf olduğundan. Yok char ve bir var birintint 18 *bir sonucu. Ancak o zaman = değerlendirilir, ama şu anda ifade operatörü ile ilgili sonuç zaten değerlendirilmiştir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Project Mooncircle

    Project Moon

    6 Aralık 2009
  • The Computer Chronicles

    The Computer

    7 Kasım 2012
  • William Sledd

    William Sled

    24 EYLÜL 2006