2012-06-07 17 views
5

Duplicar posibles:
static allocation in java - heap, stack and permanent generationdonde se asigna la memoria cuando declaramos estática?

es una pequeña confusión ... la definición estática de clase, métodos y variables.In esto tres casos en los que se concedieron por la memoria. ? Mi jefe está familiarizado con C, dice que solo las variables están en la memoria de pila y el resto (clases estáticas y métodos estáticos) permanecerán en la memoria principal. es eso ture? cualquier explicación.?

uno más en android utilizando clases estáticas y métodos estáticos es una mejor práctica?

+0

Duplicado: [http://stackoverflow.com/q/405364/1073063](http://stackoverflow.com/q/405364/1073063) y [http://stackoverflow.com/q/6569557/1073063 ] (http://stackoverflow.com/q/6569557/1073063). Moderador: Lo siento, me vinculé a la pregunta incorrecta cuando señalé esto. – Pablo

Respuesta

5

Prueba de esto,

static members are stored in Method Area. 

instancias de clases y las matrices se almacenan en la memoria de pila. La memoria del montón también se llama memoria compartida. Como este es el lugar donde múltiples hilos compartirán los mismos datos.

Non-heap Memory 

Se compone de ‘Method Area’ y otra memoria necesaria para el procesamiento interno. Entonces aquí el jugador principal es 'Área de Método'.

Method Area 

Como se indica en la última línea, el área de método forma parte de la memoria que no es de montón (Un área de montón especial). Almacena estructuras por clase, código para métodos y constructores. La estructura por clase significa constantes de tiempo de ejecución y static fields.

Los tres anteriores (memoria de montón, memoria no de montón y área de método) son la jerga principal cuando se trata de memoria y JVM.

Las instancias de clase y las matrices se almacenan en la memoria del montón. La memoria del montón también se llama memoria compartida. Como este es el lugar donde múltiples hilos compartirán los mismos datos.

+0

No. Los campos estáticos y las constantes se almacenan en el objeto Class, que está en el montón. – EJP

3

Las variables estáticas se guardan en el mismo lugar que la declaración de Clases (métodos y atributos, etc.). 1). Las clases (cargadas por los cargadores de clases) van en un área especial en montón llamada Generación permanente, y el campo estático también va al mismo lugar que son comunes a cada instancia de la clase. Para más detalles:

see this answer

Cuestiones relacionadas