Pregunta

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();
    }
}

En el código anterior, ¿qué objeto y referencia se crea en qué parte de la memoria? (Me refiero a Montón y pila)

 texto alternativo
(fuente: c-sharpcorner.com )

¿Fue útil?

Solución

Dado que etiquetó su pregunta Java, supongo que se refería a Java. Directamente desde la boca del caballo:

  

La máquina virtual Java tiene un montón que se comparte entre todos los Java   hilos de máquinas virtuales. El montón es   el área de datos de tiempo de ejecución desde la cual   memoria para todas las instancias de clase y   se asignan matrices.

JVM Spec

Aquí hay un enlace a una pregunta SO anterior eso entra en esto con gran detalle (y es una discusión independiente del lenguaje sobre el tema).

Aquí hay un enlace a un artículo de C # corner detallando el problema en C #.

Otros consejos

El pedido y el cliente están en el montón. Aunque el Cliente puede ser una estructura, es un miembro compuesto de un tipo de referencia (por ejemplo, una clase).

Todas las cadenas son tipos de referencia y se crean en el montón.

No estoy seguro acerca de la clase Ship porque no tengo su declaración (es decir, no sé si es una estructura o una clase).

La variable int iTotal se crea en la pila.

Esto es cierto para C #. Java puede tener diferentes reglas en juego.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top