¿Cómo implementa Java los cierres internos de clase?

En Java, una clase interna anónima puede referirse a variables en su ámbito local:

public class A {
    public void method() {
        final int i = 0;

        doStuff(new Action() {
            public void doAction() {
                Console.printf(i);   // or whatever
            }
        });
    }
}

Mi pregunta es ¿cómo se implementa esto realmente? Cómoi llegar al interior anónimodoAction implementación, y por qué tiene que serfinal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta