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

  • Floortile83

    Floortile83

    16 Ocak 2010
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009
  • World Science Festival

    World Scienc

    1 Mayıs 2008