¿Hay alguna sobrecarga cuando lanzamos objetos de un tipo a otro? ¿O el compilador simplemente resuelve todo y no hay ningún costo en el tiempo de ejecución?¿La fundición de Java introduce gastos generales? ¿Por qué?
¿Se trata de un asunto general, o hay diferentes casos?
Por ejemplo, supongamos que tenemos una matriz de Objeto [], donde cada elemento puede tener un tipo diferente. Pero siempre sabemos con certeza que, por ejemplo, el elemento 0 es un doble, el elemento 1 es una cadena. (Sé que este es un diseño incorrecto, pero supongamos que tengo que hacer esto).
¿La información del tipo de Java aún se mantiene en tiempo de ejecución? O todo se olvida después de la compilación, y si hacemos (Doble) elementos [0], simplemente seguiremos el puntero e interpretaremos esos 8 bytes como un doble, sea lo que sea.
No tengo muy claro cómo se hacen los tipos en Java. Si tiene alguna recomendación sobre libros o artículos, entonces gracias también.
El rendimiento de instanceof y casting es bastante bueno. Publiqué un momento en Java7 sobre diferentes enfoques del problema aquí: http://stackoverflow.com/questions/16320014/java-optimization-nitpick-is-it-faster-to-cast-something-and-let-it- throw-excep/28858680 # 28858680 – Wheezil
Esta otra pregunta tiene muy buenas respuestas http://stackoverflow.com/questions/16741323/casting-performance-in-different-levels-when-casting-down – user454322