Páginas:
462
Edición:
3
Fecha de publicación:
21/04/2016
ISBN:
9788426723246
Formato:
17x24 cms
Colección

El gran libro de Java a Fondo

29,80
29,80
Añadir a cesta
Recíbelo en 24/48h
Curso de Programación.3º Edición

Java a fondo, ya en su tercera edicion, es un curso universitario de lenguaje y desarrollo de aplicaciones Java (actualizado a la version 8) basado en un enfoque totalmente practi]co, sin vueltas ni rodeos.

El libro comienza desde un nivel «cero» y avanza hasta llegar a temas complejos como introspeccion de clases y objetos, acceso a bases de datos (JDBC), multiprogramacion, networking y objetos distribuidos (RMI), entre otros. Incluye introduccion a Hibernate y Spring.

Se hace hincapie en la teoria de objetos: polimorfismo, clases abstractas, interfaces Java y clases genericas asi como en el uso de patrones de diseno que permitan desacoplar las diferentes partes que componen una aplicacion para que esta resulte mantenible, exten]sible y escalable.

La obra explica como disenar y desarrollar aplicaciones Java respetando los estandares y lineamientos propuestos por los expertos de la industria convirtiendose asi en una herramienta fundamental para obtener las certificaciones
internacionales SCJP (Sun Certified Java Programmer) y SCJD (Sun Certified Java Developer).

Para ayudar a clarificar los conceptos, el autor incluye diagramas UML y una serie de videotutoriales que incrementan
notablemente la dinamica del aprendizaje.

Pablo Augusto Sznajdleder es Ingeniero en Sistemas de Informacion. Es profesor asociado en la catedra de »Algoritmos y estructura de datos» y profesor promotor en la materia optativa «Algoritmos comple-jos para estructuras avanzadas»; ambas materias en UTN.BA. Es autor de los libros «JEE a fondo» (Alfaomega, 2015), «Algoritmos a fondo» (Alfaomega 2013), «Java a fondo» (Alfaomega, 2010/12) y «Hola-Mundo.pascal» (CEIT, 2007) y trabaja desde 1996 como consultor en tecnologias Java/JEE, prestando sus servicios a importantes empresas tecnologicas. Es candidato del «Programa de Maestria en Ingenieria de Sistemas de Informacionh de la UTN e Investigador Tesista del Laboratorio de Investiga-cion, Desarrollo e Innovacion en Espacios Virtuales de Trabajo de la UNLa.

1 Introducción al lenguaje de programación Java
1.1 Introducción 
1.2 Comencemos a programar
1.2.1 El Entorno Integrado de Desarrollo (IDE)
1.3 Estructuras de control 
1.3.1 Entrada y salida de datos por consola
1.3.2 Definición de variables
1.3.3 Comentarios en el código
1.3.4 Estructuras de decisión
1.3.55 Estructuras iterativas
1.4 Otros elementos del lenguaje
1.4.1 Tipos de datos
1.4.2 Algunas similitudes y diferencias con C y C++
1.4.3 Definición de constantes
1.4.4 Arrays
1.4.5 Matrices
1.4.6 Literales de cadenas de caracteres
1.4.7 Caracteres especiales
1.4.8 Argumentos en línea de comandos
1.5 Tratamient de cadenas de caracteres
1.5.1 Acceso a los caracteres de un String
1.5.2 Mayúsculas y minúsculas
1.5.3 Ocurrencias de caracteres
1.5.4 Subcadenas
1.5.5 Prefijos y sufijos
1.5.6 Posición de un substring dentro de la cadena
1.5.7 Concatenar cadenas
1.5.8 La clase StringBuffer
1.5.9 Conversión entre números y cadenas
1.5.10 Representación numérica en diferentes bases
1.5.11 La clase StringTokenizer
1.5.12 Usar expresiones regulares para particionar una cadena
1.5.13 Comparación de cadenas
1.6 Operadores
1.6.1 Operadores artiméticos
1.6.2 Operadores lógicos
1.6.3 Operadores relacionales
1.6.4 Operadores lógicos de bit
1.6.5 Operadores de desplazamiento de bit
1.7 La máquina virtual y el JDK
1.7.1 El JDK (Java Development Kit)
1.7.2 Veriones y evolución del lenguaje Java
1.8 Resumen

2 Programación orientada a objetos
2.1 Introducción 

2.2 Clases y objetos 
2.2.1 Los  métodos
2.2.2 Herencia y sobrescritura de métodos
2.2.3 El método toString
2.2.4 El método equals
2.2.5 Definir y «crear» objetos
2.2.6 El constructor
2.2.7 Un pequeño repaso de lo visto hasta aquí
2.2.8 Convenciones de nomenclatura
2.2.9 Sobrecarga
2.2.10 Encapsulamiento
2.2.11 Visibilidad de métodos y atributos
2.2.12 Packages (paquetes)
2.2.13 La estructura de los paquetes y la variable CLASSPATH
2.2.14 Las APIs (Application Programming Interface)
2.2.15 Representaciñon gráfica UML
2.2.16 Importar clases de otros paquetes
2.3 Herencia y polimorfismo
2.3.1 Polimorfismo
2.3.2 Constructores de subclases
2.3.3 La referencia super
2.3.4 La referencia thhis
2.3.5 Clases abstractas
2.3.6 Constructores de clases abstractas
2.3.7 Instancias
2.3.8 Variables de instancia
2.3.9 Variables de la clase
2.3.10 EL Garbage Collector (recolector de residuos)
2.3.11 El método finalize
2.3.12 Constantes
2.3.13 Métodos de la clase
2.3.14 Clases utilitarias
2.3.15 Referencias estáticas
2.3.16 Colecciones (primera parte)
2.3.17 Clases genéricas
2.3.18 Implementación de una pila (estructura de datos)
2.3.19 Implementación de una cola (estructura de datos)
2.4 Interfaces
2.4.1 Desacoplamiento de clases
2.4.2 El patrón de diseño: factory method
2.4.3 Abstracción a través de interfaces
2.4.5 Desacoplar aún más
2.5 Colecciones
2.5.1 Cambio de implementación
2.6 Excepciones
2.6.1 Excepciones declarativas y no declarativas
2.6.2 El bloque try-catch-finally
2.7 Resumen

3 Acceso a bases de datos (JDBC)
3.1 Introducción
3.2 Conceptos básicos sobre bases de datos relaciones
3.2.1 Relaciones foráneas y consistencia de datos
3.2.2 Diagrama Entidad-Relación (DER)
3.2.3 SQL- Structured Query Language
3.2.4 Ejecutar queies
3.2.5 Unir tablass (join)
3.2.6 Ejecutar updates
3.3 Conectar programa Java con bases de datos
3.3.1 Invocar un query con un join
3.3.2 Updates
3.3.3 Ejecutar un INSERT
3.3.4 Ejecutar un DELETE
3.3.5 Ejecutar un UPDATE
3.3.6 El patrón de diseño «Singleton» (Singleton Paterrn)
3.3.7 Singleton Pattern para obtener la conexión
3.3.8 El shutdown hook
3.3.9 Inner classes (clases internas)
3.3.10 Manejjo de transacciones
3.4 Uso avanzado de JDBC
3.4.1 Acceso a la metadata (Result+SetMetaData)
3.4.2 Definir el «query fetch size» para conjuntos de resultados grandes
3.4.3 Ejecutar batch updates (procesamiento por lotes)
3.5 Resume

4 Diseño de aplicaciones Java (Parte I)
4.1 Introducción
4.2 Atributos de una aplicación
4.2.1 Casos de uso
4.3 Desarrollo de aplicaciones en capas
4.3.1 Aplicación de estudio
4.3.2 Análisis de los objetos de acceso a datos (DAO y DTO)
4.3.3 Análisis del façade
4.3.4 Diagrama de secuencias de UML
4.4 Portabilidad entre diferentes bases de datos
4.4.1 DAOs abstractos e implentaciones específicas para las diferentes bases de datos
4.4.2 Implementación de un factory method
4.4.3 Combinar el factory method con el singleton pattern
4.4.4 Mejorar el diseño de los DAOs abstractos
4.5 Diseño por contratos
4.5.1 Coordinación de trabajo en equipo
4.6 Resumen 

5 Interfaz gráfica (GUI)
5.1 Introducción
5.2 Componentes y contenedores
5.2.1 Distribución de componentes (layouts)
5.2.2 AWT y Swing
5.3 Comenzadndo a desarrollar GUI
5.3.1 Distribuciones relativas
5.3.2 Combinaciones de layouts
5.4 Capturar eventos
5.4.1 Tipos de eventos
5.4.2 Eventos de acción
5.4.3 Eventos de teclado
5.5 Swing
5.5.1 Cambiar el LookandFeel
5.6 Model View Controller (MVC)
5.6.1 Ejemplo de uso : ListModel
5.6.2 Ejemplo de uso: TableModel
5.7 Resumen

6 Multithreading (Hilos)
6.1 Introducción 

6.2 Implementar threads en Java
6.2.1 La interface Runnable
6.2.2 Esperar a que finalice un thread
6.2.3 Threads e interfaz gráfica
6.2.4 Sistemas operativos multitarea
6.2.5 Ciclo de vida de un thread
6.2.6 Prioridad de ejecución
6.3 Sincronización de threads
6.3.1 Monitores y seccuión crítica
6.3.2 Ejemplo del Productor /Consumidor
6.4 Resumen

7 Networking
7.1 Introducción
7.2 Conceptos básicos de networking
7.2.1 TCP – «Transmission Control Protocol»
7.2.2 UDP – «User Datagram Protocol»
7.2.3 Puertos
7.2.4 Dirección IP
7.2.5 Aplicaciones clientes/servidor
7.3 TPC en Java
7.3.1 El socket
7.3.2 Un simple cliente/servidor en Java
7.3.3 Serialización de objetos
7.3.4 Implementación de un servidor multithread
7.3.5 Enviar y recibir bytes
7.3.6 Enviar y recibir valores de tipos de datos primitivos
7.4 UDP en Java
7.5 Remote Method Invocation (RMI)
7.5.1 Componentes de una aplicación RMI
7.5.2 Ejemplo de una aplicación que utilizar RMI
7.5.3 Compilar y ejecutar la aplicación RMI
7.5.4 RMI y serialización de objetos
7.6 Resumen

8 Diseño de aplicaciones Java (Parte II)
8.1 Introducción
8.2 Repaso de la aplicación de estudio
8.2.1 El mmodelo de datos
8.2.2 La funcionalidad
8.2.3 El backend y el frontend
8.2.4 Los métodos del façade
8.3 Capas lógicas vs. capas físicas
8.3.1 Desventajas de un modelo basado en dos capas físicas
8.3.2 Modelo de tres capas físicas
8.4 Desarrollo de la aplicación en tres capas físicas
8.4.1 Desarrollo del servidor
8.4.2 Desarrollo de un cliente de prueba
8.4.3 El service locator (o ubicador de servicios)
8.4.4 Integración con la capa de presentación
8.5 Implementación del servidor con tecnología RMI
8.5.1 El servidor RMI
8.5.2 El service locator y los objetos distribuidos
8.5.3 Desarrollo de un cliente de prueba
8.5.4 Integraciñon con la capa de presentación
8.5.5 El Business Delegate
8.6 Concurrencia y acceso a la base de datos
8.6.1 El pool de conexiones
8.6.2 Implementación de un pool de conexiones
8.6.3 Integración con los servidores TCP y RMI
8.7 Resumen

9 Estructuras de datos dinámicas
9.1 Introducción
9.2 Estructuras dinámicas
9.2.1 El nodo
9.2.2 Lista enlazada (linked list)
9.2.3 Pila (stack)
9.2.4 Cola (queue)
9.2.5 Implementación de una cola sobre una lista circular
9.2.6 Clases LinkedList, Stack y Queue
9.2.7 Tablas de dispersión (Hashtable)
9.2.8 Estructuras de datos combinadas
9.2.9 Árboles
9.2.10 Árbol Binario de Búsqueda (ABB)
9.2.11 La clase TreeSet
9.3 Resumen

10 Parametrización mediante archivos XML
10.1 Introducción
10.2 XML – «Extensible Markup Language»
10.3 Estructurar y definir parámetros en un archivo XML
10.3.1 Definición de la estructura de parámetros
10.3.2 Leer y Pasear el contenido de un archivo XML
10.3.3 Acceder a la información contenida en el archivo XML
10.4 Resumen

11 Introspección de clases y objetos
11.1 Introducción
11.2 Comenzando a introspectar
11.2.1 Identificar métodos y constructores
11.2.2 Acceso al prototipo de un método
11.3 Annotations
11.4 Resumen

12 Generalizaciones y desarrollo de frameworks
12.1 Introducción
12.2 ¿Qué es un framework?
12.2.1 ¿Frameworks propios o framewokrs de terceros?
12.2.2 Reinventar la rueda
12.3 Un framework para acceder a archivos XML
12.3.1 Diseño de la API del framework
12.3.2 Análisis del elemento a generalizar
12.3.3 Parsear el archivo XML y cargar la estructura de datos
12.4 Un framework para acceder a bases de datos
12.4.1 Identificación de la tarea repetitiva
12.4.2 Diseño de la API del framework
12.4.3 Java Beans
12.4.4 Transacciones
12.4.5 Mappaeo de tablas usando annotations
12.5 El bean factory
12.6 Integración
12.6.1 Los objetos de acceso a datos
12.6.2 El façade
12.6.3 El archivo de configuración
12.6.4 El cliente

13 Entrada/Salida
13.1 Introducción
13.2 I/O streams (flujos de entrada y salida)
13.2. Entrada y salida estándar
13.2.2 Redireccionar la entrada y salidas estándar
13.2.3 Cerrar correctamente los streams
13.2.4 Streams de bytes (ImputStream y OutputStream)
13.2.5 Streams de caracteres (readers y writers)
13.2.6 Streams bufferizados)
13.2.7 Streams de datos (DataInputStream y DataOutputStream)
13.2.8 Streams de objetos (ObjectInputStream y ObjectOutputStream)
13.3 Resumen 

14 Consideraciones finales
14.1 Introducción
14.2 Consideraciones sobre multithreading y concurrencia
14.2.1 Clases con o sin métodos sincronizados
14.2.2 EL singleton pattern en contextos multithreaded
14.3 Consideraciones sobre clases «legacy»
14.3.1 La clase StrinTokenizse y el método split
14.4 Resumen

15 Object Relational Mapping (ORM) y persistencia de datos
15.1 Introducción
15.2 Hibernate framework
15.2.1 El modelo de datos relacional
15.2.2 ORM(Object Relational Mapping)
15.2.3 Configuración de Hibernate
15.2.4 Mappeo de tablas
15.2.5 La sesión de Hibernate
15.3 Asociaciones y relaciones
15.3.1 Asociación many-to-one
15.3.2 Asociación one-to-many
15.3.3 P6Spy
15.3.4 Lazy loading vs. eager loading
15.4 Recuperar colecciones de objetos
15.4.1 Criterios de búsqueda vs HQL
15.4.2 Named queries
15.4.3 Ejecutar SQL nativo
15.4.4 Queries parametrizados
15.5 Insertar, modificar y eliminar filas
15.5.1 Transacciones
15.5.2 Insertar una fila
15.5.3. Estrategia de generación de clases primarias
15.5.4 Modificar una fila
15.5.5 Múltiples updates y deletes
15.6 Casos avanzados
15.6.1 Análisis y presentación del modelo de datos
15.6.2 Asociaciones many-to-many
15.6.3 Claves primarias compuestas (Composite Id)
15.7 Diseño de aplicaciones
15.7.1 Factorías de objetos
15.8 Resumen

16 Inversión del control por inyección de dependencias
16.1 Introducción
16.2 Spring framewokr
16.2.1 Desacoplar el procesamiento
16.2.2 Conclusión y repaso
16.3 Spring y JDBC
16.4 Integración Spring + Hibernate
16.5 Resumen

17 Actualización a Java 8
17.1 Introducción
17.2 Novedades en Java 7
17.2.1 Literales binarios
17.2.2 Literales numéricos separados por «_»(guion bajo)
17.2.3 Uso de cadenas en la sentencia switch
17.2.4 Inferencia de tipos genéricos
17.2.5 Sentencia try con recurso incluido
17.2.6 Atrapar múltiples excepciones dentro de un mismo bloque catch
17.2.7 Nuevos métodos en la clase File
17.3 Novedades en Java 8
Bibliografía

A color
Páginas:
462
Edición:
3
Año Publicación:
21/04/2016
ISBN:
9788426723246
Formato:
17x24 cms
Colección

Relacionados

¿Quiéres conocer las últimas novedades?

Inscribiéndote recibirás unos regalos exclusivos para ti