SORU
31 Ocak 2010, Pazar


Java döküm havai tanıtmak mı? Neden?

Başka bir tür nesneleri verdiğimiz zaman, herhangi bir yük var mı? Ya da derleyici her şeyi çözer ve zamanında mal yok mu?

Bu genel bir şey, ya da farklı durumlar vardır.

Her öğe farklı bir türü olabilir. örneğin, Nesne bir dizi olduğunu varsayalım[], Ama biz her zaman,, 0 Çift, bir öğe 1 öğe bir Dize olduğunu söylemek emin. (Bu yanlış bir tasarım olduğunu biliyorum, ama bunu yapmak zorunda olduğumu varsayıyorum.)

Java tür bilgisi çalışma zamanında geçici tutulur? Ya da her şeyi derleme sonra unutulur, ve (Çift)elements[0] yaparsan, o her neyse işaretçi izleyin ve bu 8 bayt olarak bir çift yorumlayabilir miyiz?

Tür Java yapılır hakkında çok net değilim. Kitap ya da makale teşekkürler herhangi bir reccommendation da varsa.

CEVAP
31 Ocak 2010, Pazar


Döküm 2 tipi vardır:

Örtülüyapılan daha geniş bir türü, bir tür olarak ve dökme döküm, hiçbir yükü:

String s = "Cast";
Object o = s; // implicit casting

Açıkdaha dar bir Bir için daha geniş bir tür gittiğinizde döküm. Bu durumda, açıkça böyle döküm kullanmanız gerekir:

Object o = someObject;
String s = (String) o; // explicit casting

Bu ikinci durumda, iki tür kontrol edilmeli ve döküm mümkün değildir durumunda, JVM ClassCastException atmak gerekir, çünkü havai zamanı var.

JavaWorld: The cost of casting almış

Dökümarasında dönüştürmek için kullanılır türleri, referans türleri arasında -- özellikle, döküm türü için hangi ilgileniyoruz operasyonu burada.

Upcastişlemleri (da denir Java genişletme dönüştürmeleri Dil özelliği) dönüştürmek bir ata alt başvurusu sınıfı başvurusu. Bu döküm işlem normalde beri otomatiktir her zaman güvenli ve olabilir doğrudan derleyici tarafından uygulanmaktadır.

Mahzunişlemleri (da denir Java dönüşümleri daraltmaya Dil Belirtimi) bir dönüştür atası bir alt sınıf başvuru başvuru. Bu çevrim işlemi yürütme yükü, Java beri oluşturur döküm de kontrol edilmesi gerekir çalışma zamanı geçerli olduğundan emin olun. Eğer başvurulan bir nesne değil, bir ise hedef türü mesela döküm veya bu tür bir alt sınıfı, denenen dökme yasaktır ve atmak gerekir java.lang.ClassCastException.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • SegaAmerica

    SegaAmerica

    5 Mart 2008
  • Top10Series

    Top10Series

    26 Kasım 2008