TECNICAS AVANZADAS DE PROGRAMACION

Programación orientada a objetos en arquitectura de capas.

1. Capa de Presentación.

Se refiere a la interacción entre el usuario y el software. Puede ser tan simple como un menú basado en líneas de comando o tan complejo como una aplicación basada en formas.

2. Capa de Negocio.

Esta capa contiene la funcionalidad que implementa la aplicación. Involucra cálculos basados en la información dada por el usuario y datos almacenados y validaciones. Controla la ejecución de la capa de acceso a datos y servicios externos.

3. Capa de Datos.

Esta capa contiene la lógica de comunicación con otros sistemas que llevan a cabo tareas por la aplicación. Estos pueden ser monitores transaccionales, otras aplicaciones, sistemas de mensajerías, etc.

Reciclaje de Memoria

Fundamento de Garbage Collector.

El recolector de basura sirve como administrador automático de memoria. Proporciona los siguientes beneficios:

Le permite desarrollar su aplicación sin tener que liberar memoria manualmente para los objetos que cree.

Asigna objetos en el montón administrado de manera eficiente.

Recupera objetos que ya no se usan, borra su memoria y mantiene la memoria disponible para futuras asignaciones. Los objetos administrados obtienen automáticamente contenido limpio para comenzar, por lo que sus constructores no tienen que inicializar cada campo de datos.

Proporciona seguridad en la memoria al asegurarse de que un objeto no pueda usar el contenido de otro objeto.

Creacion de objetos aptos para el reciclaje.

ZONA DE DATOS

Es donde se almacenan las instrucciones del programa, las clases con sus métodos y constantes (menos los finals). Esta zona de memoria es fija, y no se puede modificar durante el tiempo de ejecución.

STACK

El tamaño del Stack se define durante el tiempo de compilación y es estático durante su ejecución, por lo que puede llegar un momento en el que lo llenásemos y obtuviésemos un bonito StackOverflow que en java se representa mediante un ‘OutOfMemoryException’

HEAP

El Heap es la zona de memoria dinámica, almacena los objetos que se crean, en un principio tiene un tamaño fijo asignado por la JVM (Java Virtual Machine), pero según es necesario se va añadiendo más espacio.