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

  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • ThreadBanger

    ThreadBanger

    2 Mart 2007