Bubok Publishing S.L., 2016 1 edicin ISBN: Impreso en Per / Printed in Peru Editado por Bubok Dedicatoria ndice
Compilacin y mquina virtual
Paquetes Clases y Herencia Constructores y objetos Polimorfismo e Interfaces Inyeccin de dependencias Diseo de pginas Web Javascript y DOM Patrn MVC Operaciones con base de datos JDBC con Spring Integracin de servicios Compilacin y mquina virtual
El lenguaje java fue presentado por SUN a
mediados de los aos noventa con el objetivo de crear un lenguaje fcil de usar y realizar la ejecucin de cdigo fuente en diferentes sistemas operativos sin realizar cambios, es decir, sin la dependencia del sistema operativo. Para conseguir el objetivo se adopt el paradigma de programacin orientado a objetos y la mquina virtual. La mquina virtual(Java Virtual Machine) permite la ejecucin de cdigo compilado en distintos sistemas operativos, dicho cdigo es Bytecode. Oracle brinda una implementacin para las arquitecturas ms usadas, sin embargo, existen implementacin de JVM diseadas por grandes compaias que tienen optimizaciones para sus productos como es el caso de IBM. La programacin orientada a objetos se basa en conceptos como abstraccin, encapsulacin, herencia, polimorfismo, interface. Adicionalmente los lenguajes que se guan del paradigma incluyen la gestin de recoleccin de objetos no usados (recolector de basura). Java tiene distintas ediciones: embebido(ME, Java Card, Java TV.), estndar(SE), empresarial(EE) y en la nube(Cloud). Nosotros usaremos la edicin estndar Java SE que se puede descargar de la pgina oficial de ORACLE. Java SE dispone de JRE, entorno de ejecucin, y JDK, conjunto de herramientas de desarrollo. JRE est compuesto de JVM y el conjunto de libreras Java estndar (API Java). Para ejecutar una aplicacin compilada en Java slo es necesario la JRE, slo para el desarrollo de aplicaciones es necesario JDK. Los servidores de aplicaciones regularmente incorporan JRE. JVM es un componente que sirve de intermediario para la ejecucin de cdigo compilado (bytecode) que posee instrucciones que sern ejecutadas en el dispositivo. Dicha caracterstica permite la ejecucin multiplataforma siendo una JVM distinta para cada diseo de arquitectura y sistema operativo. JVM dispone de dos reas de memoria: Heap y Stack. Heap almacena todos los objetos durante su ciclo de vida hasta la eliminacin por el recolector (Garbage collector); mientras Stack almacena las invocaciones a los mtodos, variables locales y referencia a objetos.
Imagen 1: reas de memoria
Fuente: http://stackoverflow.com Veamos el siguiente ejemplo:
public class Orden{
public void ejecutar(String mensaje){ System.out.println(mensaje); } public static void main(String[] argumento){ Orden objetoOrden = new Orden(); } } En el ejemplo anterior en la memoria Stack se almacenan: ejecutar, mensaje, main, argumento y la referencia objetoOrden; mientras en la memoria Heap se almacena: el objeto objetoOrden. Naturalmente la memoria Heap suele ser ms grande que la memoria Stack. Cuando se ejecuta un programa se puede configurar el tamao de las reas de memoria. En la versin JRE 8 el rea Heap tiene dos argumentos de JVM principales: -Xms (tamao inicial y mnimo) y -Xmx (tamao mximo); el rea Stack tiene el argumento -Xss (tamao por cada hilo). Adicionalmente a la JVM, el JRE contiene las libreras estndar que se distribuyen en los siguientes contenedores o paquetes:
Imagen 2: Libreras de la API Java
Fuente: http://docs.oracle.com/javase/8/docs/
Para generar el cdigo fuente java se puede usar
cualquier editor de texto (Vim, Emacs, notepad) siguiendo las siguientes reglas: 1. El archivo debe tener el nombre de la clase o tipo pblico. 2. El nombre del archivo debe iniciar en mayscula, cumpliendo la reglas de identificadores de clase, y la extensin debe ser java.
Para el proceso de compilar se debe instalar el JDK,
en nuestro caso la versin 8 y configurar la variables de entorno JAVA_HOME y path. Las configuraciones de variables de entorno son distintas dependiendo del sistema operativo.
Linux:
Para ver las variables de entorno se ingresa al
terminal y se ejecuta el comando env. Para ingresar o modificar las variables de entorno se edita los archivos /etc/profile o ~/.bashrc.
Windows:
Para configurar ingrese al panel de control.
Haga clic en el enlace Configuracin avanzada del sistema. Haga clic en Variables de entorno. En la seccin Variables del sistema, busque la variable de entorno PATH y seleccinela. Haga clic en Editar. Si no existe la variable de entorno PATH, haga clic en Nuevo. En la ventana Editar la variable del sistema (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH. Haga clic en Aceptar.
Compilacin
Dada la clase almacenada en el archivo Clase.java: