Este libro contiene toda la información imprescindible para estudiar el lenguaje Java tanto en sus primeros niveles como en fases más avanzadas, sin más ayuda que el esfuerzo personal del usuario. Encontrará múltiples ejemplos que ayudarán a consolidar sus conocimientos.Podrá establecer un nuevo estilo de programación aprovechando las funcionalidades de la versión 5.0, tal como la nueva técnica de lectura de datos con la clase Scanner, la innovadora estructura for para la iteración de arrays y colecciones, el uso de marcas para colecciones genéricas, que posibilitan un código más simple y más seguro.La guía comienza con programas con interfaz en la consola del sistema, es decir, en modo texto, con ejemplos simples que van mostrando las diferentes construcciones de la programación orientada al objeto, pasando por el acceso a ficheros, la comunicación entre sistemas a través de y acceso remoto a objetos (RMI). Para terminar estudia el diseño de aplicaciones con interfaz gráfico swing y applets mostrando los nuevos diseños (LookAndFeel) que presenta esta versión, así como, el acceso a bases de datos.ÍndiceIntroducciónCómo usar este libro1. Introducción al lenguaje Java 1.1. Introducción 1.2. Historia del lenguaje Java 1.3. El papel del lenguaje Javaen la informática del año 2005 1.4. El Java 2 (J2SE5) 1.5. La documentación del Java 2 1.6. El entorno de desarrollo de Java 2 1.7. Mi primera aplicación en el lenguaje Java 1.8. Recomendaciones generales parala realización de una buena programación2. Las variables en el lenguaje Java 2.1. Introducción 2.2. Las variables en el lenguaje Java 2.3. Las variables primitivas en Java. 2.3.1. Los datos simples ordinales o enterosen el lenguaje Java. 2.3.2. Los datos simples realesen el lenguaje Java 2.3.3. Las variables boolean y char 2.4. Nombres de las variables 2.5. Literales numéricos 2.6. Ãmbito de existencia de las variables 2.7. La clase String3. Operadores en el lenguaje Java 3.1. Introducción 3.2. Los operadores y las expresionesen el lenguaje Java 3.2.1. Operadores aritméticos 3.2.2. Operadores de relación 3.2.3. Operadores lógicos 3.2.4. Operadores de asignación 3.2.5. Operador instanceof 3.2.6. Prioridad en la ejecuciónde los operadores 3.3. La documentación interna de un programa 3.4. Clases envolventes de las variablesnuméricas primitivas 3.5. Clases BigInteger y BigDecimal4. Control de flujo de un programa 4.1. Introducción 4.2. Introducción al control de flujoen un programa de Java 4.3. Estructuras de control de flujo 4.4. Ejecución condicionadade una sentencia if ... else 4.5. Control de flujo en bloques alternativos 4.5.1. La estructura de control de flujo if . else if 4.5.2. La estructura de control de flujoswitch ... case 4.6. Los bloques repetitivos 4.6.1. Introducción al uso de bloques repetitivos 4.6.2. Bloques repetitivos con contador;la estructura for 4.6.3. Recorrido de coleccionescon la estructura for(:) 4.6.4. Bloques repetitivos condicionadoscon la evaluación de la condiciónal final del bloque: la sentencia do-while 4.6.5. Bloques repetitivos condicionados con la evaluación de la condición al inicio del bloque: la estructura while 4.6.6. Sentencias break y continue 4.7. Laboratorio de Java 4.7.1. Enunciado 4.7.2. Solución al laboratorio 4.7 4.8. Laboratorio de Java 4.8.1. Enunciado 4.8.2. Solución al laboratorio 4.8 4.9. Laboratorio de Java 4.9.1. Enunciado 4.9.2. Solución al laboratorio 4.9 4.10. Laboratorio de Java 4.10.1. Enunciado 4.10.2. Solución al laboratorio 4.10 4.11. Laboratorio de Java 4.11.1. Enunciado 4.11.2. Solución al laboratorio 4.115. Entradas y salidas a la consola del sistema 5.1. Introducción 5.2. Escritura de datos en la consoladel sistema 5.3. Lectura de los argumentos dela lÃnea de comandos del sistema 5.4. Lectura de datos a través de la consoladel sistema 5.4.1. Sistema de lectura de datos en la consoladel sistema antes de la versión J2SE5 5.4.2. Sistema de lectura de datos en la consoladel sistema después de la versión J2SE5 5.5. Lectura de datos a través de la consoladel sistema con validación 5.6. Laboratorio de Java 5.6.1. Enunciado 5.6.2. Solución al laboratorio 5.6 5.7. Laboratorio de Java 5.7.1. Enunciado 5.7.2. Solución al laboratorio 5.7 5.8. Laboratorio de Java 5.8.1. Enunciado 5.8.2. Solución al laboratorio 5.86. Los array en el lenguaje Java 6.1. Introducción 6.2. Concepto de array 6.3. Declaración de array 6.4. Definición o construcción de array 6.5. Ejemplos de utilización de array 6.6. Utilidades de la clase Array 6.7. Laboratorio de Java 6.7.1. Enunciado 6.7.2. Solución al laboratorio 6.7 6.8. Laboratorio de Java 6.8.1. Enunciado 6.8.2. Solución al laboratorio 6.8 6.9. Laboratorio de Java 6.9.1. Enunciado 6.9.2. Solución al laboratorio 6.9 6.10. Laboratorio de Java 6.10.1. Enunciado 6.10.2. Solución al laboratorio 6.10 6.11. Laboratorio de java 6.11.1. Enunciado 6.11.2. Solución al laboratorio 6.117. Clases y objetos del lenguaje Java 7.1. Introducción 7.2. Concepto de clase y objeto 7.3. El operador this 7.4. Paquetes y clases 7.4.1. Clases de uso frecuente en Java 7.4.2. Tipos de Clases 7.5. Clases internas 7.5.1. Clases anidadas estáticas 7.5.2. Clases internas o clases miembro 7.5.3. Clases internas locales 7.6. Estructuras de datos enum 7.7. Laboratorio de Java 7.7.1. Enunciado 7.7.2. Solución al laboratorio 7.7 7.8. Laboratorio de Java 7.8.1. Enunciado 7.8.2. Solución al laboratorio 7.88. Métodos y atributos 8.1. Introducción 8.2. Los métodos y los atributos 8.2.1. Objetos como almacén de datos 8.3. Tipos de métodos según el retorno que genera 8.4. Paso de argumentos a métodos 8.5. Tipos de acceso a métodos y atributos 8.6. Métodos estáticos de la clase principal 8.7. Igualdad de referencia de objetos 8.8. Recursividad de los métodos 8.9. Laboratorio de Java 8.9.1. Enunciado 8.9.2. Solución al laboratorio 8.9.1 8.10. Laboratorio de Java 8.10.1. Enunciado 8.10.2. Solución al laboratorio 8.10 8.11. Laboratorio de Java 8.11.1. Enunciado 8.11.2. Solución al laboratorio 8.11 8.12. Laboratorio de Java 8.12.1. Enunciado 8.12.2. Solución al laboratorio 8.129. Control de excepciones 9.1. Introducción 9.2. Concepto de excepción 9.3. Captura de las excepciones 9.4. Cómo se procesan excepciones con try catch 9.5. Generación de excepciones; sentencia throw 9.6. Excepciones personalizadas 9.7. Laboratorio de Java 9.7.1. Enunciado 9.7.2. Solución al laboratorio 9.7 9.8. Laboratorio de Java 9.8.1. Enunciado 9.8.2. Solución al laboratorio 9.8 9.9. Laboratorio de Java 9.9.1. Enunciado 9.9.2. Solución al laboratorio 9.9 9.10. Laboratorio de Java 9.10.1. Enunciado 9.10.2. Solución al laboratorio 9.1010. Entrada y salida a ficheros 10.1. Introducción 10.2. Introducción a la escrituray lectura de ficheros 10.3. La clase File 10.4. Las clases Reader y Writer 10.5. Las clases InputStream y OutputStream 10.6. Ficheros de acceso directo o aleatorio 10.7. Serialización 10.8. Lectura de ficheros conlos métodos de la clase Scanner 10.9. Laboratorio de Java 10.9.1. Enunciado 10.9.2. Solución al laboratorio 10.9 10.10. Laboratorio de Java 10.10.1. Enunciado 10.10.2. Solución al laboratorio 10.9 10.11. Laboratorio de Java 10.11.1. Enunciado 10.11.2. Solución al laboratorio 10.1111. Hilos de ejecución (Threads) 11.1. Introducción 11.2. Concepto de proceso e hilo de ejecución 11.3. La clase Thread 11.4. Sincronización de hilos 11.5. Métodos wait y notify de la clase Object 11.6. Prioridades de ejecución de hilos 11.7. Ejecución de un proceso externo 11.8. Laboratorio de Java 11.8.1. Enunciado 11.8.2. Solución allaboratorio 11.812. Herencia y clases de tipo interfaz 12.1. Introducción 12.2. Concepto de herencia 12.3. Métodos sobrecargados 12.4. Concepto de interfaz 12.5. Definición de una clase interfaz 12.6. Instrumentación de una clase interfaz 12.7. Interfaz simple 10.8. Interfaz complejo13. Listas, pilas y otras colecciones 13.1. Introducción 13.2. El paquete java.util 13.2.1. Tipos genéricos 13.2.2. Listas y coleccionesdel paquete java.util 13.2.3. Clase de tipo interfaces para crear listas y colecciones del paquete java.util 13.3. La clase ArrayList 13.4. La clase Vector 13.5. La clase Stack 13.6. La clase Hashtable 13.7. La clase HashSet 13.8. La clase LinkedList 13.9. La clase TreeMap 13.10. La Clase StringTokenizer14. Utilidades de fechas, matemáticas y otros 14.1. Introducción 14.2. La clase Date y GregorianCalendar 14.3. La clase DecimalFormat 14.4. La clase Random 14.5. La clase Math 14.6. La clase Cipher15. Invocación de métodos remotos 15.1. Introducción 15.2. Arquitectura distribuida 15.3. Aplicaciones con RMI 15.4. Aplicación servidora 15.5. Aplicación cliente16. Comunicación a través de sockets 16.1. Introducción 16.2. Concepto de socket 16.3. Comunicaciones en Internet 16.4. La librerÃa java.net 16.5. Investigación de una dirección IP 16.6. Creación de una conexión a través de un socket 16.7. Enviar y recibir datos a través de un socket 16.8. Socket escuchador de conexiones 16.9. Conexión con una dirección de Internet URL17. Introducción a la interfaz gráfica 17.1. Introducción 17.2. Introducción a la construcciónde una interfaz gráfica 17.3. Una ventana elemental 17.4. Diseño de la interfaz gráfica del usuario 17.5. Métodos de la clase Component 17.6. Componentes Swing 17.7. Captura de eventos sobre componentes 17.7.1. Eventos de uso frecuente 17.7.2. Eventos sobre botones 17.7.3. Eventos del ratón 17.7.4. Eventos del menú 17.7.5. Eventos del teclado18. Ejemplos de interfaz gráfica 18.1. Introducción 18.2. Aplicación tÃpica con agrupación de componentes 18.3. Aplicación con separador entre dos paneles 18.4. Aplicación con diálogo de selecciónde fichero 18.5. Aplicación con explorador de Internet 18.6. Aplicación con ventanas de mensajes 18.7. Visualizador de imágenes 18.8. Transformación de coordenadasen componentes 18.9. Laboratorio de Java 18.9.1. Enunciado 18.9.2. Solución al laboratorio 18.919. Interfaz gráfica con applets 19.1. Introducción 19.2. Los applet y el HTML 19.3. Estructura básica de un applet 19.4. Distribución de componentes por diseños predefinidos 19.5. Componentes distribuidos libremente 19.6. Casillas de activación (Check Box) 19.7. Casillas de activación (Radio Button) 19.8. Listas desplegables y cuadros de listas 19.9. Las clases Canvas y Graphics 19.10. La clase Image20. Acceso a bases de datos 20.1. Introducción 20.2. Acceso a bases de datosÃndice alfabético