Está en la página 1de 2

II – Manejo de memoria

Manejo de memoria.
Todas las variables, arreglos y objetos en general tienen una duración determinada durante el transcurso de
un programa, esto quiere decir que son creados y destruidos de acuerdo a la ejecución del programa.

Existen 3 formas de utilizar la memoria para almacenar valores.

Manejo de memoria estática.


Memoria estática:
Es la memoria que se reserva en el momento de la compilación antes de comenzar a ejecutarse el programa.
Los objetos mantienen la misma localización en memoria durante todo el transcurso del programa.

Los objetos administrados de este modo son:

Variables globales.
Variables estáticas (static).

Manejo de memoria dinámica.


Es también llamado almacenamiento libre porque en estos casos el programador es el que solicita memoria
para crear los objetos y es el responsable de liberar la memoria cuando ya no la necesita para ser reutilizada.

Manejo de memoria Automática.


Es la utilizada por los argumentos y las variables locales en una función o procedimiento, cada ejecución de
este crea tales objetos y son destruidos al salir de ellos.

Argumentos.
Variables locales.

La reserva y liberación para variables globales, estáticas, locales y argumentos son realizadas en forma
implícita
por el programa, la única que requiere intervención del programador es la reserva y liberación de memoria
dinámica.

Estructura de datos Pág. 1


II – Manejo de memoria
Ejemplo.
public class Edificio {

private final int habitaciones = 16; //variable tipo final


private static int inquilinos = 76; //variable tipo estatica global
private double renta; //variabe tipo dinámica de la clase

public Edificio ( int tarifa ) // tarifa, es un variable local


{
renta = tarifa * habitaciones / inquilinos;

}
//metodo de instancia
public double getRenta () {
return renta;
}
//metodo estatico de clase
public static int getInquilinos () {
return inquilinos;
}

public static void main (String [] args)


{
System.out.println("No. inquilinos "+inquilinos); //se accede a la variable sin
necesidad de instanciar
System.out.println("No. inquilinos "+getInquilinos()); //se accede al metodo sin
necesidad de instanciar
//instanciamos un objeto de la clase para tener acceso a las demas variables y metodos
Edificio unidad = new Edificio (1400);
System.out.println("No. habitaciones "+unidad.habitaciones); //atributo, devuelto
a traves de la instancia
System.out.println("Renta nominal "+unidad.getRenta()); //metodo llamado a traves
de la instancia
}
}

Salida.

No. inquilinos 76
No. inquilinos 76
No. habitaciones 16
Renta nominal 294.0

Estructura de datos Pág. 2

También podría gustarte