Code: Select all
public class Test{
static int add (int m, int n){
return m+n;
}
public static void main (String[] args){
int a=1;
int b=2;
int c= add(a,b);
}
}
Nehmen Sie den obigen einfachen Code an. Wenn ich die Zeile int c = add(a,b); ausführe, werden im Call-Stack 32 Bit Speicher für die Integer-Variable c reserviert, dann wird die Methode add mit den Parametern 1 und 2 aufgerufen. Dadurch werden zwei neue Bereiche im Speicher (im Call-Stack) für die Parameter m und n erstellt und ihnen die Werte 1 bzw. 2 zugewiesen. Nun schließt der Return die Methode add ab und der für m und n allokierte Speicher wird wieder freigegeben. Anschließend wird c der Wert der Summe zugewiesen. Ist das richtig?
Genauer gesagt: Wo ist der Rückgabewert von add, nach dem Schließen von add, aber vor der Zuweisung an c? Liegt es an der CPU? Oder irre ich mich generell bei der Abwicklung der Retoure?