Geht das initialisierte Java-Array auf Stack oder Heap?

8
%Vor%

Wird dieses Array im Heap oder auf dem Stack gespeichert?

    
Christian 13.08.2010, 07:42
quelle

2 Antworten

18

Sie können denken , dass es immer auf dem Haufen geht.

Ich glaube, einige intelligente VMs können Objekte stapeln, wenn sie erkennen können, dass sie sicher sind - aber konzeptionell ist es auf dem Haufen. Insbesondere sind alle Array-Typen Referenztypen (selbst wenn der Elementtyp primitiv ist), also ist die array -Variable (die sich auf dem Stack befindet) nur ein Verweis auf ein Objekt, und normalerweise gehen Objekte auf den Heap.

Stellen Sie sich vor allem eine kleine Änderung vor:

%Vor%

Wenn das Array auf dem Stack zugewiesen wurde, worauf sollte sich die zurückgegebene Referenz beziehen?

    
Jon Skeet 13.08.2010, 07:46
quelle
1

Es wird im Heap gespeichert

    
Jeroen Rosenberg 13.08.2010 07:47
quelle

Tags und Links