So che le variabili di metodo sono memorizzate nella pila della memoria ma leggermente confuse su final
. Avevo sfogliato molti link come this non riuscivo a capire bene? qui di seguito è l'esempio di inner class
in cui si accede final
variabili e locali non-final
variabili non sono come vengono memorizzati in stack
Dove si trova la variabile finale locale nel metodo memorizzato (Stack/Heap)?
class Employee {
public void getAddress(){
final int location = 13;
int notFinalVar = 13;
class Address {
System.out.println (location);
System.out.println (notFinalVar); // compiler error
}
}
Aggiornamento: Poco fa è venuto a sapere campi nascosti chiamato synthetic field
(inner class heap memory area
) in cui la copia delle variabili finali è memorizzata, quindi significa che finalmente le variabili finali sono memorizzate in Stack memory Area
?
Sì: è a causa di questa copia che Java richiede di dichiarare queste variabili come definitiva. –
è possibile elaborare su 'campo sintetico sintetico' nella classe interna –
'campo sintetico sintetico' era un errore di battitura è' campo sintetico'. Ho aggiornato la mia risposta @BhargavModi – Saif