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)

 alt text
(fonte: c-sharpcorner.com )

È stato utile?

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.

Specifiche JVM

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top