SORU
20 EKİM 2008, PAZARTESİ


Java dizi yansıma: ısarray vs örneğin

Yok kullanma arasında tercih veya davranış fark:

if(obj.getClass().isArray()) {}

ve

if(obj instanceof Object[]) {}

?

CEVAP
20 EKİM 2008, PAZARTESİ


Genel olarak, instanceof operatörü bir nesneyi bir dizi olup olmadığını test etmek için kullanın.

JVM düzeyinde, instanceof operatör en JVM uygulamalarında son derece optimize edilmiş "instanceof" bayt belirli bir koda çevirir.

Yansıtıcı yaklaşım (getClass().isArray()) "invokevirtual" iki ayrı talimatlar için derlendi. Genel iyileştirmeler JVM tarafından uygulanan bu el ayarlı iyileştirmeleri kadar hızlı olmayabilir daha fazla doğal "" talimat. örneğin içinde

İki özel durum vardır: ilkel diziler için boş başvuruları ve başvurular.

Boş bir başvuru instanceof isArray NullPointerException atar false, neden olabilir.

İlkel bir dizi instanceof uygulanan sonuçları false ama isArray döner true.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • hydejiaqi

    hydejiaqi

    12 Mart 2008
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012