2012-09-04 21 views
5

Si creo un bloque estático y creo un Objeto allí, digamos de alguna otra clase, ¿se creará el objeto en el montón o en la pila?¿En qué lugar de la memoria se encuentran objetos cuando se crean dentro de un bloque estático?

class Hello { 
    static { 
     Abc abcObject=new Abc(); 
    } 
    // Other Code... 
} 
+0

Estará en el montón. – Santosh

+0

Gracias ................. –

+0

Bienvenido a Stack Overflow. Cuando alguien te ayuda aquí, es costumbre aceptar una respuesta. Para ello, haga clic en el contorno de la marca de verificación que se encuentra junto a la respuesta que considera correcta. ¡Gracias! –

Respuesta

4

El objeto se crea en el montón, pero la referencia al objeto está en la pila.

La variable abcObject que ha creado se encuentra en la pila. Esto contiene una dirección de memoria dentro del montón donde se almacena el objeto new Abc().

+0

_referencia al objeto está en la pila_ puede elaborar/ – Santosh

+0

@Santosh Todas las variables locales están en la pila. –

+0

Aahh ... lo tengo. Lo siento :) – Santosh

7

Los objetos están siempre en montón independientemente de la estática (o) no estática.

Las referencias estarán en la pila.

+0

+1 'abcObject' es una variable local que hace referencia a un objeto. Esto estará en la pila. El objeto al que se hace referencia estará en el montón. –

+0

@PeterLawrey: respuesta de acuerdo y actualizada. – kosa

+0

@ user1646626: De nada. Disfruta de la codificación – kosa

Cuestiones relacionadas