'volátil' na assinatura do método? [duplicado]
Esta questão já tem uma resposta aqui:
Por que tornar um método volátil em java? 7 respostasEste é estranho. Eu tenho o seguinte código:
<code>class A { protected A clone() throws CloneNotSupportedException { return (A) super.clone(); } } </code>
quando eu descompilhei seu bytecode através de 'showmycode.com', ele me mostrou o seguinte código:
<code>class A { A() { } protected A clone() throws clonenotsupportedexception { return (A)super.clone(); } protected volatile object clone() throws clonenotsupportedexception { return clone(); } } </code>
O que significa para um tipo de retorno de método ser volátil no segundo método 'clone'? (Este código foi compilado através do compilador JDK 1.6 padrão do Eclipse).