¿Cómo se implementa instanceof dentro de JAVA?

¿Cómo se implementa instanceof dentro de JAVA?

La respuesta corta es que depende de la plataforma.

La respuesta larga es que debería poder descubrir cómo se implementa escribiendo un caso de prueba que utilice instanceof , ejecutándolo en un bucle para asegurarse de que se compila JIT y luego volcando y examinando el código nativo.

Sin embargo, no creo que esto sea particularmente instructivo. Lo que realmente quieres saber es si es más rápido instanceofo no Class.isAssignableFrom. Puede medir esto mediante una cuidadosa micro-evaluación comparativa.

FWIW, predigo que encontrarás que instanceofes más rápido. (Espero que el compilador JIT pueda optimizar instanceofde manera que no pueda optimizar la versión reflexiva).

Pero, por último, te sugiero que no pierdas tu tiempo con este nivel de optimización en esta etapa. Codifique esto usando instanceof, y espere hasta que tenga algunos datos de perfil que le indiquen que suinstanceof uso es realmente un cuello de botella de rendimiento. (Está muy bien "preocuparse por el rendimiento" ... pero en realidad hay cosas más importantes que debe hacer antes de que el rendimiento se convierta en un tema clave).

Respuesta 1

Tengo un método que generalmente toma un elemento de una lista y tiene una firma de: myMethod (elemento T) Quiero usar este método pero sé lo que estoy enviando. SpecificItem myItem = nuevo ...

Quiero almacenar ciertos objetos en un HashMap. El problema es que, por lo general, solo usa un solo objeto como clave. (Puede, por ejemplo, usar una cadena.) Lo que quiero hacer para usar varios objetos. Por ...

Tengo que hacer una llamada SOAP desde mi programa java, para lo cual utilicé el eje apache. Mi programa es el siguiente: import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml ....

Estoy tratando de crear un JASPI ServerAuthModule personalizado totalmente aislado de mi aplicación EAR. Depende de una versión heredada de Spring Framework 2.5.5. Estoy ejecutando WildFly 9.0.2.Final. Definí un ...