Curso de Programación JAVA
Fco. Javier Alcalá Casado
Contenidos
ð Bibliografía ð Introducción ð Características de Java ð Tipos de datos y operadores ð Control de flujo ð Programación orientada a objetos ð Arrays ð Características avanzadas de la orientación a objetos ð Características avanzadas del lenguaje ð Excepciones ð Entrada/salida ð Clases útiles ð Threads
Bibliografía
ð Javain a nutshell: a desktop quick reference D. Flanagan. Ed. O’Reilly Muy completo ð The Java tutorial: object-oriented programming for the Internet M. Campione. Ed. Addison-Wesly Programación del lenguaje ð Core packages. J. Gosling. Ed. Addison-Wesley Manual de referencia ð The Java language specification J. Gosling. Ed. Addison-Wesley Lenguaje y manual de referencia ðhttp://java.sun.com/j2se/1.4/docs/api/index.html Referencia actualizada por SUN Microsystems
Introducción
Fco. Javier Alcalá Casado
Introducción (I)
ð Creado en 1991 por Sun Microsystems para electrodomésticos:
û Escasa potencia de cálculo û Poca memoria û Distintas CPUs
ð Consecuencias:
û Lenguaje sencillo que genera código reducido û Código neutro independiente de la CPU (máquina virtual)
ð Lenguaje deprogramación para ordenadores desde 1995
Introducción (II)
ð Sun describe Java como un lenguaje “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico” ð Similar en sintaxis a C/C++ y en semántica a SmallTalk ð Ejecución de Java como:
û aplicación independiente û applet (dentro del navegador alcargar la página web) û servlet (ejecutado en servidor de Internet, sin interfaz gráfica)
ð JDK (Java Development Kit): programas y librerías para desarrollar, compilar y ejecutar programas Java
Características de Java
ð Lenguaje de fácil uso orientado a objetos ð Lenguaje compilado e interpretado ð Facilita un entorno interpretado:
û Velocidad de desarrollo (no de ejecución) û Portabilidaddel código
ð Ejecución multitarea ð Cambios dinámicos en tiempo de ejecución ð Seguridad del código
Máquina Virtual Java (JVM)
ð La Java Virtual Machine es una máquina hipotética que emula por software a una máquina real. Contiene:
û Conjunto de instrucciones m áquina (C.O. + Operandos) û Registros û Pila û Memoria û …
ð El compilador genera bytecodes (instrucciones de código máquinapara JVM) ð El intérprete ejecuta y traduce los bytecodes para cada máquina específica
Compilador e Intérprete de Java
ð El compilador analiza la sintaxis del código fuente (con extensión *.java). Si no hay errores, genera bytecodes > javac Nombre.java ? Nombre.class ð El intérprete es la Máquina Virtual Java que ejecuta los bytecodes (con extensión *.class) creados por el compilador > javaNombre (sin extensión .class)
ð Aplicación con argumentos:
> java Nombre arg1 arg2 …
Garbage Collector
ð Debe liberarse la memoria reservada dinámicamente que no se vaya a utilizar más ð En otros lenguajes, esta liberación debe realizarla el propio programador ð La JVM dispone de un thread que rastrea las operaciones de memoria: el Garbage Collector, el cual:
û Verifica y libera lamemoria que no se necesita û Se ejecuta automáticamente û Puede variar según la implementación de la JVM
Seguridad del Código
ð La JVM verifica los bytecodes asegurando que:
û el código se ajusta a las especificaciones de la JVM û no hay violaciones de acceso restringido û el código no provoca desbordamientos de la pila û los tipos de los parámetros son correctos para todo el código û no existenconversiones ilegales de datos (p.e. convertir de enteros a punteros) û los accesos a los campos de los objetos están autorizados
Variables de entorno
ð En versiones antiguas del JDK, es necesario incluir las siguientes líneas al final del autoexec.bat ð Para tener accesibles el compilador y el intérprete Java: set PATH=%PATH%;C:jdk1.2.2in
(el directorio dependerá de dónde se hayan…