'volátil' en la firma del método? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué hacer un método volátil en java? 7 respuestas

Este es raro Tengo el siguiente código:

<code>class A
{   
    protected A clone() throws CloneNotSupportedException
    {
        return (A) super.clone();       
    }
}
</code>

cuando descompilé su bytecode a través de 'showmycode.com', me mostró el siguiente código:

<code>class A
{

    A()
    {
    }

    protected A clone()
    throws clonenotsupportedexception
    {
        return (A)super.clone();
    }

    protected volatile object clone()
    throws clonenotsupportedexception
    {
        return clone();
    }
}
</code>

¿Qué significa que un tipo de retorno de método sea volátil en el segundo método de "clonación"? (Este código fue compilado a través del compilador JDK 1.6 predeterminado de Eclipse).

Respuestas a la pregunta(4)

Su respuesta a la pregunta