Welche Aufgabe wird, in welchem Teil des Speichers erstellt?
Frage
public class Order
{
static Customer cust = new Customer();
string sEmpty = "";
public static void main(String args[])
{
int iTotal = 10;
string sProductName = "Salt";
Ship shp = new Ship();
}
}
Bei dem obigen Code, welches Objekt und es wird in dem, welchen Teil des Speichers erstellt? (Ich meine Heap und Stack)
(Quelle: c-sharpcorner.com )
Lösung
Da Sie Ihre Frage Java getaggt, werde ich annehmen, dass Sie in Java gemeint. Direkt aus dem Maul des Pferdes:
Die virtuelle Java-Maschine verfügt über einen Haufen, die unter allen Java geteilt wird Threads virtuelle Maschinen. Der Haufen ist der Laufzeitdatenbereich, aus der Speicher für alle Klasseninstanzen und Arrays zugeordnet ist.
Hier ist ein Link zu einer vorherigen Frage SO das geht in diese schweren Detail (und ist sprachunabhängig Diskussion über das Thema).
Hier ist ein verlinken einen Artikel von C # Ecke Detaillierung das Problem in C #.
Andere Tipps
Auftrag und Kunden sind auf dem Heap. Obwohl ein Kunde struct sein kann, ist es ein zusammengesetztes Element eines Referenztypen (beispielsweise eine Klasse).
Alle Saiten sind Referenztypen und sind auf dem Heap erstellt.
Ich bin über die Schiffsklasse nicht sicher, weil ich nicht habe seine Erklärung (das heißt, ich weiß nicht, ob es sich um eine Struktur oder eine Klasse).
Die int Itotal Variable auf dem Stapel erstellt.
Dies gilt für C #. Java kann im Spiel verschiedene Regeln haben.