Neden't bazı durumlarda bir int ve char ekleyebilirsiniz?
Neden yapar
char ch = '4';
ch = '4' 2;
iş, ama
char ch = '4';
ch = ch 2;
değil mi?
CEVAP
Bu, lets anlamak için derleyici her iki olasılık için her adımda ne yaptığını düşünün. İle başlayalım:
ch = '4' 2;
Derleyici '4' int ' e çevirir. Olur
ch = 52 2;
Derleyici o zaman dönüşür
ch = 54;
ch char ve derleyici dönüşüm kaybı yok olduğunu kanıtlamak gibi bir char 54 dönüştürmek için izin verilir.
Şimdi ikinci versiyonunu düşünün sağlar:
ch = ch 2;
ch derleme zamanında bilinen bir değeri vardır. Böylece bu olur
ch = ((int) ch) 2;
Şimdi derleyici bu sonucu (bir int) char aralığında depolanabilir olduğunu kanıtlamak. Bu yüzdendeğilotomatik olarak dar ve bir hata olarak bildiriyor.
EDİT1:
Eğer derleyici bu değişken hiç değişmeyecek kanıtlayabilirim, ve inlineable. Sonra ikinci formu ilk haline olabilir. Subir de sözlerine ekledi 'son' bu mümkün olur. dikkat çekti Eğer bir derleyici değiştirmek analizi gerçekleştirmek için, eğer endam yetenekli olmasına rağmen bu Son kelime bile etmeden, ama son derleyici ve kod okuyucular için daha kolay yapar.
EDİT2:
İnt daralması Java Language Spec link alınmıştır char için lütfen Jon Skeet tarafından sağlandı.
Neden char[] şifreler için Dize Java t...
Sabit XML ayrıştırma ve düzenli HTML i...
Neden bitişik in Java daha hızlı geçiş...
Neden bazı yüzer < karşılaştırmalar...
Neden diğerleri üzerinde bazı platform...