Tema 1. Introducción Describir las funciones clave de la tecnología
Java.
Escribir, compilar y ejecutar una aplicación Java sencilla.
Describir la función de Java Virtual Machine (JVM). Nota: Los términos "Java Virtual Machine" y "JVM" hacen referencia a la máquina virtual de Java.
Definir la liberación de recursos.
Enumerar tres tareas realizadas por Java en las que se gestiona la seguridad del código.
Tema 2. Programación orientada a objetos Definir los conceptos de modelado: abstracción, encapsulación y paquetes.
Explicar por qué se puede reutilizar el código de
aplicaciones Java.
Definir los conceptos clase, miembro, atributo, método, constructor y paquete.
Utilizar los modificadores de acceso público (public) y privado (private) conforme sea necesario para la encapsulación.
Invocar un método en un objeto determinado.
Utilizar la documentación en línea relacionada con la interfaz de programación de aplicaciones (API) de Java.
Tema 3. Identificadores, palabras clave y tipos Utilizar comentarios en un programa fuente.
Distinguir entre identificadores válidos y no válidos.
Reconocer las palabras clave de
Java.
Enumerar los ocho tipos de primitivas.
Definir valores literales para tipos numéricos y textuales.
Definir los términos variable primitiva y variable de referencia.
Declarar variables de tipo clase.
Crear un objeto utilizando new.
Describir la inicialización predeterminada.
Describir la importancia de una variable de referencia.
Indicar las consecuencias de asignar variables de tipo clase.
Práctica de Identificadores, palabras clave y tipos Tema 4. Expresiones y control de flujo Distinguir entre variables de instancia y locales.
Describir la forma de inicializar variables de instancia.
Identificar y corregir una referencia posible antes de un error del compilador de asignación.
Reconocer, describir y utilizar operadores Java.
Distinguir entre asignaciones válidas y no válidas de tipos primitivos.
Identificar las expresiones booleanas y sus requisitos en las construcciones de control.
Reconocer la compatibilidad de asignación y las conversiones imprescindibles en los tipos básicos.
Utilizar las construcciones if, switch, for, while y do, además de las formas con etiqueta de las instrucciones break y continue, como estructuras de control de flujo en un programa.
Utilizar el bucle for mejorado con colecciones genéricas.
Utilizar el bucle for mejorado con matrices.
Entender las iteraciones anidadas con el bucle for mejorado.
Práctica de Expresiones y control de flujo. Tema 5. Matrices Declarar y crear matrices de primitivas, clases o tipos de matrices.
Explicar por qué se inicializan los elementos de una matriz.
Explicar cómo se inicializan los elementos de una matriz.
Determinar el número de elementos de una matriz.
Crear una matriz multidimensional.
Escribir código para copiar valores matriciales entre matrices.
Práctica de MatricesTema 6. Colecciones genéricas Comparar y contrastar las colecciones genéricas y no genéricas.
Utilizar la versión genérica de la API de colecciones.
Utilizar colecciones genéricas con comodines.
Escribir métodos genéricos.
Integrar código heredado (no genérico) con código genérico.
Práctica de Colecciones genéricas Laboratorio Tema 7. Autoboxing y AutoUnboxing Describir las operaciones de boxing/unboxing manual y autoboxing/auto-unboxing.
Utilizar autoboxing con colecciones genéricas y el bucle for mejorado.
Describir cómo repercute en el rendimiento el uso de autoboxing y auto-unboxing.
Práctica de Autoboxing y AutoUnboxing Laboratorio Tema 8. Diseño de clases Definir la herencia, el polimorfismo, la sobrecarga, la sobrescritura y la invocación de un método virtual.
Utilizar los modificadores de acceso protegido (protected) y el paquete sin modificador de acceso.
Describir los conceptos de sobrecarga de constructor y método.
Describir las operaciones completas de creación e inicialización de objetos.
Práctica de Diseño de clases Laboratorio Tema 9. Funciones de clases avanzadas Crear variables, métodos e inicializadores estáticos (static).
Crear clases, métodos y variables final.
Crear y utilizar tipos enumerados.
Utilizar la instrucción de importación estática (static import).
Crear clases y métodos abstractos.
Crear y utilizar una interfaz.
Práctica de Funciones de clases avanzadas Laboratorio Tema 10. Typesafe Enums Describir un patrón de tipo enumerado común anterior a
J2SE 5.0 y los problemas que plantea.
Crear un enum sencillo.
Crear un enum con atributos y constructores.
Crear un enum con métodos de valor específico.
Utilizar series de enums (rangos) y mapas.
Práctica de Escribir un programa sencillo con typesafe enums. Laboratorio Tema 11. Varargs Describir los problemas de los métodos con argumentos variables anteriores a J2SE 5.0
Utilizar métodos con argumentos variables.
Crear métodos con argumentos variables.
Práctica de Reescribir un programa sencillo para utilizar varargs. Laboratorio Tema 12. Static Import Describir la finalidad de las importaciones estáticas.
Utilizar importaciones estáticas con constantes (atributos estáticos), métodos static y enums.
Describir los inconvenientes de usar importaciones estáticas.
Práctica de Reescribir un programa sencillo para utilizar importaciones estáticas. Laboratorio Tema 13. Metadatos (Anotaciones) Comparar las anotaciones anteriores a
J2SE 5.0 con las nuevas.
Utilizar las anotaciones incorporadas.
Crear un tipo propio de anotaciones.
Utilizar el tipo de anotaciones propio en el código fuente.
Utilizar el tipo de anotaciones propio en el tiempo de ejecución.
Describir la herramienta de proceso de anotaciones Annotation Processing Tool (apt).
Práctica de Utilizar anotaciones para desaprobar un método. Laboratorio Tema 14. Excepciones y afirmaciones Definir las excepciones.
Utilizar instrucciones try, catch y finally.
Describir las categorías de excepciones.
Identificar las excepciones comunes.
Desarrollar programas que gestionen excepciones.
Utilizar afirmaciones.
Distinguir entre el uso adecuado e inadecuado de las afirmaciones.
Activar las afirmaciones durante el tiempo de ejecución.
Práctica de Excepciones y afirmaciones Laboratorio Tema 15. Aplicaciones basadas en texto Escribir un programa que utilice los argumentos de la línea de comandos y las propiedades del sistema.
Escribir un programa que lea la entrada estándar.
Describir la entrada y salida tipo C con formato.
Escribir un programa que pueda crear, leer y escribir archivos.
Práctica de Aplicaciones basadas en texto Laboratorio Tema 16. Interfaces gráficas de usuario. Paquete AWT Librerías AWT
Componentes AWT
Desarrollo de aplicaciones con interfaz gráfica
Práctica de Interfaces gráficas de usuario. Paquete AWT Laboratorio Tema 17. Interfaces gráficas de usuario. Paquete SWING Librerías SWING
Componentes SWING
Constantes SWING
Cuadros de diálogo
Listas, tablas y árboles
Desarrollo de
aplicaciones con interfaz gráfica
Práctica de Interfaces gráficas de usuario. Paquete SWING Laboratorio Tema 18. Gestión de disposición y manejo de eventos Layouts
Gestión de disposición con
java Manejo de eventos con java
Clases manejadoras
Clases adaptadores
Interfaces Listener
Gestión de eventos en una aplicación java
Práctica de Gestión de disposición y manejo de eventos Laboratorio Tema 19. Threads Definir un thread (subproceso).
Crear threads separados en un programa Java, y controlar el código y los datos que utiliza ese thread.
Controlar la ejecución de un thread y escribir código que no dependa de la plataforma con threads.
Describir las dificultades que pueden surgir cuando varios threads comparten datos.
Utilizar wait y notify para la comunicación entre threads.
Utilizar synchronized para evitar que los datos resulten dañados.
Práctica de Threads Laboratorio Tema 20. Funciones de concurrencia Comparar las utilidades de concurrencia anteriores a
J2SE 5.0 con las nuevas.
Utilizar un ejecutor o la interfaz ExecutorService para gestionar threads.
Utilizar las funciones Future y Callable para la programación asíncrona.
Utilizar bloqueos y condiciones como alternativa más adecuada a los métodos wait y notify.
Utilizar variables atómicas como alternativa más adecuada a las variables volátiles.
Práctica: Implementar funciones de concurrencia. Laboratorio Tema 21. Flujos de E/S avanzados Describir las funciones principales del paquete
java.nio.
Construir secuencias de nodos y procesos, y utilizarlos correctamente.
Distinguir los lectores y escritores de los flujos y elegir el que resultado adecuado.
Práctica de Flujos de E/S avanzados. Laboratorio Tema 22. JDBC Middleware JDBC.
Interfaz Connection
Ejecución de Querys con la interfaz Statement
· Tipos de statement
Manejo de resultados con la Interfaz ResultSet
· Tipos de resultset
Uso de transacciones
Práctica de JDBC. Laboratorio Tema 23. Redes Desarrollar código para configurar la conexión de red.
Creación de sockets
Entender el protocolo de control de transmisión /protocolo de Internet (TCP/IP).
Utilizar las clases ServerSocket y Socket para implementar clientes y servidores TCP/IP.
Transferencia y recepción de información a través de sockets
Práctica de Redes. Laboratorio Tema 24. RMI Arquitectura RMI
Creación de objetos remotos
Ejecución remota de métodos
Práctica de RMI. Laboratorio Tema 25. Mejoras de red Describir los cambios más importantes realizados en las redes en
J2SE 5.0
Crear un servicio inetd sencillo en el sistema operativo Solaris.
Crear un servicio inetd RMI en Solaris.
Práctica de Mejoras de red. Laboratorio.