ÍNDICE
PRÓLOGO
PARTE I.PROGRAMACIÓN EN JAVA
CAPÍTULO 1.INTRODUCCIÓN A JAVA
Características de Java
La Máquina Virtual Java (JVM)
Ediciones Java
Primeros pasos en Java
El Software Development Kit (SDK)
Configuración de variables de entorno
Creación del primer programa en Java
Codificación
Compilación
Ejecución
Entornos de desarrollo para Java
Conceptos básicos de programación en Java
Objetos
Clases
Métodos y campos
Métodos y campos estáticos
El método main()
Cuestiones de autoevaluación
CAPÍTULO 2.SINTAXIS DEL LENGUAJE
Sintaxis básica
Secuencias de escape
Tipos de datos Primitivos
Variables
Tipos de datos de una variable
Declaración de variables
Asignación
Literales
Ámbito de las variables
Valores por defecto de una variable
Conversiones de tipo
Conversiones implícitas
Conversiones explícitas
Constantes
Operadores
Aritméticos
Asignación
Asignación de referencias y asignación de valores
Condicionales
Comparación de tipos básicos
Igualdad de objetos
Lógicos
Operadores a nivel de bits
Operador instanceof
Operador condicional
El recolector de basura de Java
Instrucciones de control
Instrucción if
La instrucción switch
La instrucción for
La instrucción while
Salida forzada de un bucle
Break
Continue
Arrays
Declaración
Dimensionado de un array
Acceso a los elementos de un array
Paso de un array como argumento de llamada a un método
Array como tipo de devolución de un método
Recorrido de arrays con for-each
Arrays multidimensionales
Tipos enumerados
Definición de un tipo enumerado
Clases de enumeración
Constructores y métodos de una enumeración
Constructores
Métodos
Métodos con número variable de Argumentos
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 3.CLASES DE USO GENERAL
Organización de clases: los paquetes
Ventajas de la utilización de paquetes
Importar clases y paquetes de clases
Paquetes de uso general
La especificación del API J2SE
Gestión de cadenas: la clase String
Creación de objetos String
Inmutabilidad de objetos String
Principales métodos de la clase String
La clase Math
Constantes públicas
Métodos
Importaciones estáticas
Clases de envoltorio
Encapsulamiento de un tipo básico
Conversión de cadena a tipo numérico
Autoboxing
Entrada y salida en Java
Salida de datos
Salida con formato
El método printf()
Sintaxis de la cadena de formato
Entrada de datos
Scanners
Creación de un objeto Scanner
Métodos de la clase Scanner
Recuperación de datos de un fichero externo
Expresiones Regulares
Definición de un patrón
Búsqueda de coincidencias
Caracteres utilizados en la construcción de expresiones regulares
Métodos de la clase Matcher
Colecciones
La clase ArrayList
Creación de un arraylist
Métodos de la clase ArrayList
La clase Hashtable
Creación de un Hashtable
Métodos de la clase Hashtable
Iteración de un Hashtable: La interfaz Enumeration
Genéricos
El problema de las colecciones de tipo Object
Utilización de genéricos con colecciones
Definición de tipos genéricos
Organización de programas en clases
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 4.PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Empaquetado de clases
Modificadores de acceso
Encapsulación
Protección de datos
Facilidad en el mantenimiento de la clase
Clases de encapsulación (JavaBeans)
Sobrecarga de métodos
Constructores
Definición y utilidad
Constructores por defecto
Herencia
Concepto de herencia
Ventajas de la herencia
Nomenclatura y reglas
Relación es un
Creación de herencia en Java
Ejecución de constructores con la herencia
Métodos y atributos protegidos
Sobrescritura de métodos
Clases abstractas
Definición
Sintaxis y características
Polimorfismo
Asignación de objetos a variables de su superclase
Definición de polimorfismo
Ventajas de la utilización del polimorfismo
Tipos de retorno covariantes
El polimorfismo en el API de Java
La herencia y los tipos genéricos
Colecciones de clases y subclases
Comodines
Interfaces
Definición de interfaz
Definición de una interfaz
Implementación de una interfaz
Interfaces y polimorfismo
Interfaces en el J2SE
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 5.EXCEPCIONES
Excepciones y errores
Clases de excepción
Tipos de excepciones
Excepciones marcadas
Declaración de una excepción
Excepciones no marcadas
Captura de excepciones
Los bloques try.catch.finally
try
catch
finally
Propagación de una excepción
Lanzamiento de una excepción
Métodos para el control de una excepción
Clases de excepción personalizadas
Aserciones
Formato de una aserción
Habilitar aserciones
Compilar con aserciones
Ejecutar con aserciones
Uso apropiado de aserciones
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 6.ACCESO AL DISCO
Información sobre ficheros y directorios.La clase File
Creación de un objeto File
Métodos de la clase File
Lectura de un fichero de texto
Creación de un objeto FileReader
Creación de un objeto BufferedReader
Escritura en ficheros de texto
Creación de un objeto FileWriter
Creación del objeto PrintWriter
Escritura de datos primitivos Java en un fichero
Creación de un objeto FileOutputStream
Creación de un objeto DataOutputStream
Lectura de tipos primitivos de un fichero
Creación de un objeto FileInputStream
Creación de un objeto DataInputStream
Escritura de objetos en un fichero
Serialización de objetos
Creación de un objeto ObjectOutputStream
Lectura de objetos de un fichero
Creación de un objeto ObjectInputStream
Deserialización de objetos
Listado de las prácticas
CAPÍTULO 7.ACCESO A DATOS EN JAVA
La tecnología Java DataBase Conectivity (JDBC)
El driver JDBC
Estructura y funcionamiento
Tipos de driver JDBC
Driver puente JDBC-ODBC
Driver nativo
Driver intermedio
Driver puro-Java
El Lenguaje SQL
Consultas
Tipos de sentencias SQL
Sentencias para manipulación de datos (DML)
Sentencia SELECT
Sentencia INSERT
Sentencia DELETE
Sentencia UPDATE
El API JDBC
Utilización de JDBC para acceder a datos
Conexión con la base de datos
Carga del driver
Creación de la conexión
Ejecución de consultas
Creación del objeto Statement
Ejecución de la consulta SQL
Cierre de la conexión
Manipulación de registros
Obtener objeto ResultSet
Desplazamiento por el conjunto de registros
Acceso a los campos
Otros métodos de la interfaz ResultSet
Cierre de un ResultSet
Información sobre los datos
Obtener objeto ResultSetMetaData
Acceso a la información
Consultas preparadas
Creación de un objeto PreparedStatement
Asignación de parámetros
Ejecución de la consulta
ResultSet desplazables
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 8.APLICACIONES BASADAS EN ENTORNO GRÁFICO
AWT
Principales clases del AWT
Contenedores
Creación de una ventana
Personalización de ventanas
Agregar controles a un contenedor
El modelo de gestión de eventos en Java
Interfaces de escucha y escuchadores
El proceso de gestión de eventos
Origen y destino del evento
Asociación objeto origen-escuchador
Resumen de pasos a seguir
Ejemplo de gestión de eventos
Clases de evento
Adaptadores
Referencia a los objetos de la interfaz desde la clase de escucha
Gestores de organización AWT
Establecimiento de un gestor de organización
Principales gestores de organización AWT
Swing
Principales clases de swing
Creación de una interfaz gráfica swing
Applets
La clase Applet
Métodos del ciclo de vida de un applet
Creación de un applet
Inclusión de un applet en un documento HTML
Paso de parámetros a un applet
Cuestiones de autoevaluación
Listado de las prácticas
CAPÍTULO 9.APLICACIONES MULTITAREA
Aplicaciones multitarea en Java
Extensión de la clase Thread
Sobrescritura del método run()
Creación y ejecución de las tareas
Métodos para control de threads
El método sleep()
Nombre de un thread
Obtener thread en ejecución
Prioridad de un thread
El método yield()
El método join()
Estados de un thread
Implementación de la interfaz Runnable
Implementación del método run()
Creación y ejecución de tareas
Sincronización de threads
Acceso concurrente a objetos
Sincronización y monitores
Comunicación entre threads
Cuestiones de autoevaluación
PARTE II.PREPARACIÓN PARA EL EXAMEN DE CERTIFICACIÓN
CAPÍTULO 10.CLASES ANIDADAS
Tipos de clases anidadas
Clases internas estándares
Instanciación de la clase interna
Utilización de this
Modificadores para una clase interna
Clases internas locales a método
Instanciación de la clase interna
Modificadores
Clases anónimas
Definición de una clase anónima
Clase anónima como argumento de método
Clases internas estáticas
Instanciación de la clase interna
CAPÍTULO 11.OBJETIVOS DEL EXAMEN JAVA SUN CERTIFIED PROGRAMMER 310-035
Objetivo 1: Declaraciones y Control de Acceso
Declaración de un array, construcción e inicialización
Declaración
Construcción
Inicialización
Array anónimo
Asignaciones de referencias a array
Declaración de elementos y utilización de modificadores
Declaración de clases
Declaraciones de métodos
Variables dato miembro
Variables locales
Constructores por defecto
Tipos de retorno válidos
Objetivo 2: Control de flujo, Aserciones y Gestión de Excepciones
Utilización de las instrucciones if y switch
Instrucción if.else
switch
Utilización de bucles
while
for
Uso de break y continue
Etiquetado de bucles
Excepciones y errores en un programa
Aserciones
Objetivo 3: El Recolector de Basura
Comportamiento del recolector de basura
Forzar un objeto para que sea recolectado
Establecer referencias a null
Reasignación de la referencia
Destrucción de variables locales
Aislar una referencia
Reconocer en qué punto un objeto es elegido para recolección
Requerir la ejecución del recolector
El método finalize()
Objetivo 4: Fundamentos del lenguaje
Reglas de declaración
Formato del método main()
Implementación de una interfaz
Reglas de declaración de una interfaz
Reglas de implementación
Parámetros del método main()
Palabras reservadas e identificadores
Utilización de variables o elementos de array no inicializados
Tipos de datos básicos, literales y formatos
Objetivo 5: Operadores y asignaciones
Determinar el resultado de aplicar un operador
Operadores de asignación con tipos primitivos
Operadores de comparación
Operador instanceof
Operadores aritméticos
Operadores de desplazamiento
Utilización del método equals()
Utilización de operadores lógicos &, |, &&, ||
Paso de parámetros a métodos
Objetivo 6: Características de la orientación a objetos
Beneficios de la encapsulación
Relación "Es un" y "Tiene un"
Sobrescritura y sobrecarga de métodos
Constructores e instanciación
Objetivo 7: Threads
Definición, instanciación y ejecución de tareas
El Thread Scheduler
Método de control de un thread
Situaciones que podrían provocar que un thread abandonase la ejecución
Sincronización y acceso concurrente
Métodos wait(), notify() y notifyAll()
Objetivo 8: Clases fundamentales del paquete java.lang
Utilización de los métodos de la clase Math
Método abs()
Método ceil()
Método floor()
Método max()
Método min()
Método round()
Método sin()
Método cos()
Método tan()
Método sqrt()
Cadenas de caracteres
El pool de constantes String
La clase StringBuffer
Utilización de las clases de envoltorio
Características generales
Utilización de constructores
Métodos
Objetivo 9: Las colecciones
Tipos de colecciones
Clases e interfaces de colección
Implementación de equals() y hashCode()
Sobrescritura de equals()
Sobrescritura del método hashCode()
CAPÍTULO 12.OBJETIVOS DEL EXAMEN JAVA SUN CERTIFIED PROGRAMMER 310-055
Objetivo 1: Declaración, inicialización y ámbito
Declaraciones de elementos
Declaración de una clase
Declaración de una interfaz
Declaración de una enumeración
Herencia de una clase abstracta
Implementación y herencia de una interfaz
Palabras reservadas e identificadores
Variables y tipos de datos
Tipos de datos
Variables
Declaración, construcción e inicialización de arrays
Declaración
Construcción
Inicialización
Array anónimo
Asignaciones de referencias a array
Utilización de variables de array no inicializadas
Declaración y utilización de métodos
Declaración de un método
Métodos estáticos
Métodos en clases JavaBeans
Métodos con número variable de argumentos
Sobrescritura y sobrecarga de métodos
Definición y utilización de constructores
Objetivo 2: Control de flujo
Utilización de las instrucciones if y switch
Instrucción if.else
switch
Utilización de bucles
while
for
for-each
Uso de break y continue
Etiquetado de bucles
Excepciones y errores en un programa
Aserciones
Objetivo 3: El API J2SE
Clases de Envoltorio
Características generales
Utilización de constructores
Métodos
autoboxing/unboxing
Las clases String, StringBuffer y StringBuilder
La clase String
La clase StringBuffer
La clase StringBuilder
Lectura y escritura en ficheros
Serialización de objetos
Formateo de fechas y números
La clase DateFormat
La clase NumberFormat
Utilización de expresiones regulares
Lectura de datos con la clase Scanner
Salida de datos con formato
Objetivo 4: Concurrencia
Definición, instanciación y ejecución de tareas
El Thread Scheduler
Método de control de un thread
Situaciones que podrían provocar que un thread abandonase la ejecución
Sincronización y acceso concurrente
Métodos wait(), notify() y notifyAll()
Objetivo 5: Conceptos de Orientación a Objetos
Beneficios de la encapsulación
Polimorfismo
Sobrescritura y sobrecarga de métodos
Relación "Es un" y "Tiene un"
Objetivo 6: Colecciones y genéricos
Clase e interfaces de colección
Tipos de colecciones
Clases e interfaces de colección
La interfaz Comparable
Implementación de los métodos equals() y hashCode()
Sobrescritura de equals()
Sobrescritura del método hashCode()
Utilización de colecciones genéricas
Los parámetros de tipo
Comodines
Métodos genéricos
Otras peculiaridades sobre genéricos
Uso de instanceof con genéricos
Genéricos y arrays
Colecciones genéricas y no genéricas
Ordenación de arrays y colecciones de objetos
Las interfaces Comparable y Comparator
Ordenación de una colección
Ordenación de un array de objetos
Búsqueda de objetos en un array/colección
Conversión de array a colección y de colección a array
Objetivo 7: Fundamentos
Uso de los modificadores de acceso
Argumentos de la línea de comandos
Paso de referencias a objetos y tipos primitivos a métodos
El Recolector de Basura
Comportamiento del recolector de basura
Reconocer en qué punto un objeto es elegido para recolección
Requerir la ejecución del recolector
El método finalize()
Utilización de operadores
Operadores de asignación
Operadores aritméticos
Operadores Relacionales
Operador instanceof
Operadores lógicos
Igualdad de objetos
APÉNDICES
A.CLASES PARA LA CREACIÓN DE APLICACIONES GRÁFICAS
AWT
Component
Container
Window
Frame
Button
Label
TextComponent
TextField
TextArea
Ckeckbox
CheckboxGroup
List
Choice
Panel
Swing
JComponent
AbstractButton
JFrame
JLabel
JTextField
JButton
JRadioButton
ButtonGroup
JCheckBox
B.JAVA 6
Nuevas características de J2SE 6.0
Nuevas capacidades del API Java Swing
El API Desktop
Nuevas características de seguridad
Establecimiento de permisos en ficheros y directorios
Actualización a JDBC 4.0
C.SOLUCIÓN A LAS CUESTIONES DE AUTOEVALUACIÓN
D.PREGUNTAS TIPO DE EXAMEN
Exam 310-035
Exam 310-055
ÍNDICE ALFABÉTICO