¿Cómo funciona el casting de objetos Java detrás de la escena? [duplicar]

Posible duplicado:
¿Cómo funciona el operador de cast de Java?
Implementación de Java Cast

Siempre me pregunto cómo funciona la conversión de objetos en Java. Entiendo que para el tipo primitivo será más como en el nivel de representación binaria, pero ¿qué pasa con Object? Es algo así comoPolymorphism odynamic binding ¿En que todo estará determinado en tiempo de ejecución? Por ejemplo:

class Parent{
     void A(){}
}
class Child extends Parent{
     @Override
     void A(){}
}

Parent p = new Parent();
Child c = (Child) p;

¿Cómo funciona esto detrás de la escena? ¿Crea una nueva instancia deChild? Y también, qué pasa si intentas lanzar:

Child b = (Child) new Object();

Y el último, cuando se lanza un primitivo a una clase de envoltorio:

Double d = (Double) 3.3;

Sé que no es necesario que lo lances, pero ¿y si lo haces? ¿Hay algo significativo que sucede en el backend?

Respuestas a la pregunta(5)

Su respuesta a la pregunta