Gestión de memoria en Java

Una vez desarrollado correctamente un programa en Java, corregidos todos sus errores sintácticos, se procede a la ejecución del mismo comprobando, en ese momento, su correcto funcionamiento.

Cuando un programa está en ejecución, en memoria se guardarán todo su código para que de esta forma el procesador pueda ir ejecutando cada una de las lineas de código del programa.

Por otra parte, los datos correspondientes al programa en Java que fundamentalmente vienen definidos por variables y objetos también serán guardados en la memoria. No obstante, estas variables y objetos no quedarán guardados en la misma sección de la memoria ya que en la misma habrán dos zonas claramente definidas denominadas respectivamente STACK y HEAP.

En el STACK se guardarán las variables comúnmente utilizadas en el programa, por ejemplo:

int x=3;

char letra=’v’;

float numero=3,8;

También se dice que en el apartado STACK se guardan los datos primitivos como por ejemplo variables de tipo entero, float, char, etc, y, por otra parte en la sección HEAP se guardarán los datos dinámicos creados en tiempo de ejecución tales como los objetos. Supongamos que tenemos la clase coche y a partir de ella creamos una instancia de la misma para definir un objeto de nombre coche_rojo. Este nuevo objeto con toda su información será guardado en el apartado HEAP pero, la referencia al mismo, es decir la variable que contiene la dirección de memoria en la que se encuentra guardado el objeto siempre se ubicará en el apartado STACT en la que se guardan todos los datos primarios anteriormente comentados.

Dado un programa en Java con la siguiente declaración de variables primarias y un objeto coche_rojo, seguidamente podemos ver un esquema en el que se muestra int x;cómo y dónde van a ser guardadas:

int x;

char letra;

float numero;

Coche as coche_rojo;

Java

El lenguaje de programación objeto de estudio a lo largo del curso que hemos iniciado es el Java. Como todos los lenguajes de programación tiene sus ventajas e inconvenientes.

El empleo de un determinado lenguaje de programación a la hora de la realización de una aplicación estará supeditado a las características del programa que pretendamos desarrollar.

Java es un lenguaje de programación orientado a objetos puro.

Con el adjetivo puro pretendo recalcar el hecho que para el desarrollo de cualquier aplicación únicamente podemos hacer uso del paradigma de la programación orientada a objetos. Por lo tanto, si queremos conocer y avanzar en el conocimiento de este lenguaje deberemos entender los principales aspectos de la técnica de programación orientada a objetos. Conceptos como los de clase, objeto, método, constructor, herencia, etc deberán sernos familiares para el desarrollo de aplicaciones en Java.

El uso del lenguaje de programación Java requiere la instalación previa de una máquina virtual Java sobre la que se ejecutarán sus aplicaciones. Esta máquina virtual hará de intermediaria entre el código inicialmente creado y el sistema operativo empleado en un determinado equipo. Como consecuencia de esto, se puede entender que Java no es un lenguaje compilable que genere un código ejecutable en el equipo, será la herramienta utilizada para programar en Java (Eclipse, Netbeans, etc) que genere un pseudocódigo ejecutable sobre la máquina virtual Java y esta, a partir de este pseudocódigo ponga en funcionamiento la aplicación.

Una consecuencia de todo esto es el hecho que las aplicaciones Java son siempre multiplataforma ya que teniendo por debajo su máquina virtual Java no interactuarán directamente con el sistema operativo del equipo.

Hasta donde llegan mis conocimientos sobre este lenguaje entiendo que el lenguaje Java es muy adecuado en la creación de aplicaciones que vayan a funcionar en sistemas monopuesto o en red pero no tanto en el desarrollo de aplicaciones web en donde lenguajes de programación como PHP o Javascript nacieron específicamente para el mundo web.

Y nada más, solamente me queda por decir que independientemente del lenguaje de programación a estudiar en el curso que ahora iniciamos, pretendo enseñaros las características o fundamentos básicos de cualquier lenguaje de programación con el ánimo que aprendáis y quizás os apasionéis por:

¡ El arte de programar !