ich habe es gelöst , weiss aber nicht was ist hier mit die Anzahl der Methoden im Stacktrace gemeint ? Mein Output war 12 . ich kann nicht 12 Methode sehen !
Gelöst
Kommentare (3)
- Beliebt
- Neu
- Alt
Du musst angemeldet sein, um einen Kommentar schreiben zu können
claudia
21 August 2022, 12:32
Ich verstehe "zwölf" (auch) nicht.
(Leider auch in Lisas Verlinkung nicht, tut mir leid.)
Mag das jemand in wenigen Sätzen oder als Bild erklären? (Geht das überhaupt?)
0
Thomas
22 August 2022, 08:06
Stack: hier stapelt die JVM alle Methoden, die sie in deinem Code aufgerufen hat. Die JVM weiß also, wo sie sich in der Codehierarchie befindet und wohin sie zurückspringen muss, wenn ein return ausgeführt werden soll.
Hast du dir mal den Code den Lisa geposted hat angesehen und ausgeführt?
Wenn dem so ist, dann siehst du, dass getStackTrace() ausgeführt in der main() methode zwei Einträge hat (main und getStacktrace). Rufst du von main eine andere Methode auf (methode1()) und von dort erneut getStacktrace, dann liegen main(), methode1() und getStackTrace() auf dem Stack. Ruft methode1() nun eine weiter Methode auf und diese wieder eine usw. und die letzte, Methode10 ruft wieder getStackTrace() auf, dann liegen main, methode(1), methode(2).... methode(10) und getStackTrace() auf dem Stack... also 12 Methodenaufrufe.
In der main() methode waren es zwei... Wenn man also wissen will, wieviele Methoden seit main aufgerufen wurden, nimmt man die stacktrace length von methode10 und zieht die stacktrace length von main davaon ab.
Ganz einfach ;)
+2
Lisa L
25 März 2022, 07:49Lösung
Hier hab ich das beantwortet.
+3