Mit Java kann man das nicht vergleichen, denn es gibt da keine Unterscheidung zwischen statischem und temporären Speicher.
Hier ist der sog. Scope für die Existenz wichtig. Außerdem kann man in Java keine Pointer zurückgeben sondern nur Klassen und Einzeltypen (Double, Int, ...). Bereits der String ist eine Klasse mit Speicher aus dem Heap.