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

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • FPSRussia

    FPSRussia

    19 NİSAN 2010