Ich weiß, dass Methodenvariablen auf Stapelspeicher gespeichert werden, aber etwas verwirrt über final
. Ich hatte viele Links wie this Browsing nicht richtig verstanden bekommen? unten ist das Beispiel von inner class
in denen final
Variablen zugegriffen werden und lokale non-final
Variablen sind nicht, wie sie in stack
Wo ist die lokale letzte Variable in der Methode gespeichert (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
}
}
aktualisieren gespeichert sind: Gerade jetzt kam über versteckte Felder wissen, genannt synthetic field
(inner class heap memory area
), in dem Kopie der endgültigen Variablen werden gespeichert, bedeutet dies schließlich, dass die endgültigen Variablen schließlich in gespeichert werden?
Ja: es wegen dieser Kopie ist, dass Java Sie erfordert diese Variablen als endgültig zu erklären. –
können Sie über 'synthetisches synthetisches Feld' in innner Klasse –
'synthetisches synthetisches Feld' erarbeiten, war ein Tippfehler, den es 'synthetisches Feld' ist. Ich aktualisierte meine Antwort @BhargavModi – Saif