Java - Uso de memória en Java y POO en general

 
Vista:

Uso de memória en Java y POO en general

Publicado por Fernando (2 intervenciones) el 27/01/2018 17:37:49
Muy buenas , desde mi humilde experiencia quisiera compartir mi entendimiento autodidáctico acerca del uso de la memoría en Java y en la POO. No por supuesto con ánimo de dar una lección ni nada parecido , sino para que se vaya corrigiendo o aumentando el conicimiento sobre esta area tan importante de la programación.
Venia con el ánimo de hacer una simple pregunta y me he fijado en que es más facil exponer lo que yo entiendo para que otros me corrijan.

Empezaré explicando el uso de la parte de memoría estática de la tarjeta RAM (o memoría volatil , a grandes rasgos no si se puede hablar de memoría estática al referirse a la caché de la cpu también) . Sencillamente vamos a contar con que tenemos una RAM que como todos sabemos es volatil pero que durante la ejecución de un programa reserva una parte estática (innamovible a no ser que se le ordene) y una parte dinámica , la cual es mayormente utílizada para hacer las operaciones, enviar , recibir los mensajes, convertir los datos de entrada en salida etc..con el fin de dar esa salida sin que importe la direccion exacta que cada elemento ha tenido durante el proceso.
Cuando tenemos algo guardado en la memoría estática y queremos hacer uso de ello hay que copiarlo o referenciarlo en la memoria dinamica. Supongo, estoy casi seguro, de que el main de un programa se carga en estática, imaginese sino que seguridad aportaria a la cpu que las instrucciones de un programa se almacenasen en una memoria dinámica. Hoy en dia el main de un programa o aplicación se compone graficamente y uno lo que hace es redefinir la clase que controla esos objetos graficos, Osea que ha mi modo de enteder, el main de las aplicaciones diseñadas por interfaz graficas debe estar compuesto por escuchas de eventos o flags que se disparen, eso en estática, sobre todo la escucha, supongo que ha de ser muy pesado, en la RAM.
Ahora bien, cuando importamos nuestras clases al main, o a otras clases pero quiero entender esto desde el main , El compilador no hace algo muy distinto a copiar y pegar nuestras clases externas al archivo main.
De manera que según entendemos hasta aquí tooodo el archico main sería cargado en la éstatica , se que no es así , evidentemente , pero lo digo así para intentar no perder el hilo.
De hecho no es así porque , justo al contrário, debemos declarar como estático aquello que queremos que se mantenga estático, y lo hacemos con la palabra static.
Mi duda final es ¿se mantiene en estática tan solo una lebe referencia hacia una dirección de la memoria dinámica o del disco duro para toda aquella parte del codigo que no es declarado como estática? ¿o que es lo que sucede con esa parte?



Muchisimas gracias a todos, espero que esto sirva para lograr un texto definitivo que aclare bien este tema.
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

Uso de memória en Java y POO en general

Publicado por Tom (1648 intervenciones) el 27/01/2018 20:27:54
Pues te has liado un poco.
El atributo static en java no tiene nada que ver con la memoria.

https://dzone.com/articles/stack-vs-heap-understanding-java-memory-allocation
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

Uso de memória en Java y POO en general

Publicado por Fernando (2 intervenciones) el 27/01/2018 22:54:44
Gracias por el link , muy bueno.
Pero por lo que leo debe de tener algo que ver ¿no?
"...heap is used for dynamic memory allocation, while stack is for static allocations.".

De todas formas creo que aclarar estos conceptos con Java resulta más complicado sino se tienen ya claros porque interviene la maquina virtual.
De todas formas el tema se quedará abierto y si alguien me lo pudiera aclarar se lo agradecería.
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

Uso de memória en Java y POO en general

Publicado por Tom (1648 intervenciones) el 28/01/2018 09:57:59
Los "static fields" o "class variables" se asocian a la clase, no a los objetos. Eso es lo que significa el modificador static.
En java, realmente, no te importa demasiado -o no te importa nada- como la jvm organice la memoria.
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