¿Qué objeto se crea en qué parte de la memoria?
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)
(fuente: c-sharpcorner.com )
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.
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.