Quale oggetto viene creato in quale parte della memoria?
Domanda
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();
}
}
Al codice sopra, quale oggetto e riferimento viene creato in quale parte della memoria? (Intendo Heap e Stack)
(fonte: c-sharpcorner.com )
Soluzione
Dato che hai taggato la tua domanda Java, suppongo che intendevi in ??Java. Direttamente dalla bocca del cavallo:
La macchina virtuale Java ha un heap condiviso tra tutti i Java thread di macchine virtuali. L'heap è l'area dei dati di runtime da cui memoria per tutte le istanze di classe e le matrici sono allocate.
Ecco un link a una precedente domanda SO questo approfondisce in dettaglio (ed è una discussione indipendente dalla lingua sull'argomento).
Ecco un link ad un articolo dell'angolo C # dettagliare il problema in C #.
Altri suggerimenti
Ordine e cliente sono nell'heap. Sebbene il Cliente possa essere una struttura, è un membro composto di un tipo di riferimento (ad esempio una classe).
Tutte le stringhe sono tipi di riferimento e vengono create nell'heap.
Non sono sicuro della classe Ship perché non ho la sua dichiarazione (cioè non so se si tratta di una struttura o di una classe).
La variabile int iTotal viene creata nello stack.
Questo è vero per C #. Java potrebbe avere regole diverse in gioco.