Existe-t-il une différence de préférence ou de comportement entre l’utilisation :
et
?
Existe-t-il une différence de préférence ou de comportement entre l’utilisation :
et
?
En général, l'utilisation de l' instanceof
de l'opérateur de tester si un objet est un tableau.
Au niveau de la JVM, l' instanceof
opérateur se traduit par un spécifique "instanceof" byte code, ce qui est hautement optimisé dans la plupart des JVM implémentations.
L'approche réflexive (getClass().isArray()
) est compilé en deux "invokevirtual" instructions. Le plus générique optimisations appliquées par la JVM pour ces derniers peuvent ne pas être aussi rapide que la main-à l'écoute des optimisations inhérente à la "instanceof" de l'enseignement.
Il y a deux cas particuliers: null références et des références à des tableaux primitifs.
Une référence null entraînera instanceof
résultat false
, tandis que l' isArray
jette un NullPointerException
.
Appliqué à une primitive de tableau, l' instanceof
résultats false
, mais l' isArray
retours true
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.