Java - Que pasa en la memoria cuando creo un objeto???

 
Vista:

Que pasa en la memoria cuando creo un objeto???

Publicado por Clayder (70 intervenciones) el 14/03/2007 17:14:12
Hola:

Supuestamente ya se algo de la programacion en Java. Solo que nunca supe exactamente que pasa cuando declaramos datos primitivos u objetos, es decir, sobre que memoria se almacena?? RAM, Disco Duro, Cache. Por ejemplo:

Que sucede al declarar:

int n1, n2, n3;

Que sucede en la memoria en ese momento, como asi se reserva el espacio para esas variables???

Y cuando hago un casting sobre datos primitivos, que pasa en la memoria???

char c1 = (char)(n1);

O cuando se hace un casting sobre un objeto:

Persona p = (Persona)(o);//o es un objeto de la clase Object

Y tambien queria saber que sucede en la memoria, cuando hago esto por ejemplo:

new Persona().getNombre();

Es decir, se crea un espacio para ese "new Persona()"???, porque es diferente q hacer:

Persona p = new Persona();
p.getNombre();

No???

Les agradeceria mucho me despejacen estas dudas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Que pasa en la memoria cuando creo un objeto???

Publicado por Yamil Bracho (2315 intervenciones) el 14/03/2007 17:23:28
Todos las variables son mantenidas en memoria RAM. Cuando le dices el tipo de variable a una variable, java le reserva el espacio correspondiente a su tipo y le asigna una direccion en memoria.
En el caso de los objetos las variables referencias son creadas en un area especial llamada "heap"
Con respecto a la diferencia entre

new Persona().getNombre(); y

Persona p = new Persona();
p.getNombre();

Es que en el primero creas una referencia temporal para el objeto que esta creando new e invocas el metodo y la variable es destruida temporal es destruida despues de esa linea mientras que en la segunda se genera el objeto en el heap y se guarda esa direccion para que pueda ser usada posteriormente. la variable p existira hasta que se salga del metodo donde se declaro o del bloque ({..}) donde se creo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que pasa en la memoria cuando creo un objeto???

Publicado por Clayder (70 intervenciones) el 14/03/2007 17:29:50
Y por ejemplo cuanto espacio ocupa una variable de tipo int???

Depende de la cantidad que se le asigne???

y si declarara, no se, una cantidad grande de int y llenara estas con sus maximos valores, estas, entonces la pc ser haria lenta, debido a que estoy llenando la memoria RAM??

Gracias me haz aclarado muchas dudas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Que pasa en la memoria cuando creo un objeto???

Publicado por Yamil (2315 intervenciones) el 14/03/2007 18:11:03
No, un int en java ocupa 32 bits sin importar que valor contiene la variable.
En casos de que necesites mas memoria Java poene en funcionamiento lo que se llama memoria virtual, es decir, usa el espacio en disco como una extension de la memoria RAM
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Que pasa en la memoria cuando creo un objeto???

Publicado por Clayder (70 intervenciones) el 14/03/2007 22:28:39
Hola denuevo:

Me podrias recomendar algun libro para entender esos conceptos, me gustaria aprender mas de ese tema.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar