1. Introduccion
1.1. Caracteristicas
1.1.1. reutilizacion y bibliotecas
1.1.2. Tipificacion fuerte
1.1.3. Recolector de Basura
1.1.4. interptetado por JVM, compila en bytecode
1.1.5. Enlace y carga dinamica de clases
1.2. Origenes
1.2.1. 1991
1.2.1.1. Codigo Independiente de plataforma
1.2.1.1.1. James Cosling
1.2.2. 1993
1.2.2.1. Lenguaje OAK
1.2.3. 1994
1.2.3.1. WWW y Mosaic
1.2.4. 1995
1.2.4.1. Disponibilidad de Java
1.2.5. 2004
1.2.5.1. Versión J2se1.5-Beta disponible
1.3. Tecnologia
1.3.1. POO
1.3.2. Sintaxis similar C++
1.3.3. JVM
1.3.3.1. Maquina virtual
1.3.4. Java API
1.3.4.1. Aplication Programming Interface
1.3.4.1.1. Definida en el paquete System
1.3.5. Versiones
1.3.5.1. J2SE
1.3.5.2. J2EE
1.3.5.3. J2ME
1.4. Aplicacion
1.4.1. Ejecuta MAIN de una clase
1.4.1.1. Argumento Unico
1.4.1.1.1. Arreglo de Strings
1.4.2. Carga Dinamicamente otras clases
1.4.3. Manejo de archivos
1.5. Comentarios
1.5.1. Para texto
1.5.1.1. //
1.5.1.2. /* */
1.5.1.3. /** Documentacion */
1.6. Applets
1.6.1. "Aplicacioncita"
1.6.2. Uso de Web Browser
1.6.3. Diferente modelo de ejecucion
1.7. Clases y Paquetes
1.7.1. Import
1.7.1.1. importa clases de un paquete
1.7.2. Subclases
1.7.2.1. Extends
1.7.2.1.1. Herencia
1.7.3. Metodos
1.7.3.1. Clase puede implementar varios metodos
1.8. Funcionalidad
1.8.1. Esencial
1.8.2. Intefaces Graficas
1.8.3. Comunicacion en la Red
1.8.4. Internacionalizacion
1.8.5. Seguridad
1.8.6. Threads
1.8.7. Componentes de Software
1.8.8. Sincronizacion de Objetos
1.8.9. Acceso Base de Datos
2. Paquetes e Interfaces
2.1. Interfaces
2.1.1. Declaracion Interfaz
2.1.1.1. public interfaz
2.1.1.1.1. puede extender varias interfaces
2.1.2. Interfaces
2.1.2.1. Metodos Abstractos
2.1.2.2. Constantes
2.1.2.3. Clases implementan estos metodos
2.1.2.4. Diseño
2.1.2.5. No Implementacion
2.1.2.6. Implementar varias interfaces
2.1.2.7. Unica superclase
2.1.2.8. No es parte de una Jerarquia de clases
2.1.3. Cuerpo Interfaz
2.1.3.1. Constantes (implicitamente)
2.1.3.1.1. publicas
2.1.3.1.2. estaticas
2.1.3.1.3. finales
2.1.3.2. Metodos (implicitamente)
2.1.3.2.1. publicos
2.1.3.2.2. abstractos
2.1.3.3. No se acepta
2.1.3.3.1. private, protected, synchronized
2.1.4. Implementacion
2.1.4.1. Clase implementa todos los metodos
2.1.5. Herencia
2.1.5.1. Simple vs Multiple
2.1.5.1.1. Extiende una Superclase
2.1.5.1.2. Extender varias interfaces
2.1.5.1.3. Herencia Multiple causa problemas
2.1.5.1.4. Java permite Herencia simple para clases
2.1.6. Extension de Interfaces
2.1.6.1. Super_Interfacez
2.1.6.1.1. "Hereda" definiciones
2.1.7. Conflictos de Nombres
2.1.7.1. Depende de las firmas
2.1.7.1.1. No sonidenticas
2.1.7.1.2. Identicas
2.1.7.1.3. Difieren en tipo de entorno
2.1.8. Modificacion
2.1.8.1. Una vez declarada no se modifica
2.1.8.1.1. Solucion
2.1.9. Interfaces COmunes
2.1.9.1. java.util.iterator
2.1.9.1.1. hasNext(), next(), remove()
2.1.9.2. java.util.Collection
2.1.9.2.1. add(), clar(), contains()
2.1.9.3. java.lang.Comparable
2.1.9.3.1. compareTo(Object o)
2.1.9.4. java.lang.Clonable
2.1.9.4.1. Vacia!
2.1.9.5. java.lang.Runnable
2.1.9.5.1. run()
2.1.9.6. java.awt.event.ActionListener
2.1.9.6.1. actionPerformered(ActionEvent e)
2.2. Paquetes
2.2.1. Contiene
2.2.1.1. Clases
2.2.1.2. Interfacez
2.2.1.3. Subpaquetes
2.2.2. Razones
2.2.2.1. Distribucion de clases relacionadas
2.2.2.2. Distribucion
2.2.3. Definicion
2.2.3.1. Primer Linea
2.2.3.1.1. Package nombre_paquete
2.2.4. Referencias Externas
2.2.4.1. Anteponer nombre del paquete a cada tipo
2.2.4.2. import
2.2.5. Colisiones de Nombre
2.2.5.1. Anteponer nombre del paquete
2.2.5.1.1. java.util.Date, java.sql.Date
2.2.5.2. Colision de nombres de Paquete
2.2.5.2.1. Nombres Anidados
2.2.5.2.2. Dominio de internet en orden inverso
2.2.6. Control de Acceso
2.2.6.1. Clases e Interfaces
2.2.6.1.1. Publico
2.2.6.1.2. Paquete
2.2.6.2. Miembors
2.2.6.2.1. Sin modificador
2.2.6.2.2. Noprivados
2.2.7. Algunos Paquetes
2.2.7.1. java.lang
2.2.7.2. lava. io
2.2.7.3. lava.util
2.2.7.4. lava.math
2.2.7.5. lava.sql
2.2.7.6. lava.applet
2.2.7.7. etc
2.2.8. Extensiones
2.2.8.1. lavax. swing
2.2.8.2. lavax.servlet
2.2.8.3. lavax.xml
2.2.8.4. etc
3. Conceptos Basicos
3.1. Caracteres
3.1.1. Unicode
3.1.1.1. 16bits
3.1.2. ASCII 7bit
3.1.3. Latin-1
3.2. Identificadores
3.2.1. Comienzo
3.2.1.1. letra
3.2.1.2. _
3.2.1.3. $
3.2.2. Diferencia entre Mayusculas
3.2.3. Palabras Reservadas
3.3. Variable
3.3.1. item de Datos
3.3.2. Declarar tipo
3.4. Tipo de Datos
3.4.1. Define los posibles valores de una variable
3.4.2. Primitivos
3.4.2.1. byte
3.4.2.1.1. no tiene clase declarada en el paquete java.lang
3.4.2.2. short
3.4.2.2.1. no tiene clase declarada en el paquete java.lang
3.4.2.3. int
3.4.2.4. char
3.4.2.5. etc
3.4.3. Referencias
3.4.4. Direcciones implicitas(no hay punteros)
3.5. Declaracion de Variables
3.5.1. Modificadores (opcional)
3.5.1.1. Static
3.5.1.1.1. solo se usa en campos
3.5.1.2. final
3.5.2. En cualquier parte del codigo
3.5.3. Limita uso
3.5.4. Asignacion de Valores por omision
3.5.4.1. 0
3.5.4.2. null
3.6. Operadores
3.6.1. Se asocia por la izquierda
3.6.2. Precedencia cambia usando parentesis
3.6.3. Precedencia
3.6.3.1. Unario posfijo
3.6.3.1.1. [ ] , ++
3.6.3.2. Unario Prefijo
3.6.3.2.1. ++ - + ~ !
3.6.3.3. Creacion y cast
3.6.3.3.1. new (tipo) exp
3.6.3.4. Multiplicativo
3.6.3.4.1. * / %
3.6.3.5. Aditivo
3.6.3.5.1. + -
3.6.3.6. Shift
3.6.3.6.1. << >> >>>
3.6.3.7. Relacional
3.6.3.7.1. < > >= <=
3.6.3.8. Igualdad
3.6.3.8.1. ++ !=
3.6.3.9. &, ^, |, &&, ||, ?:,
3.6.3.9.1. Operadores al Bit
3.6.3.10. Asignacion
3.6.3.10.1. = += -=, etc
3.7. Expresiones
3.7.1. Evalua de Izquierda a Derecha
3.7.2. Evalua antes de la operacion
3.7.3. Cada expresion tien untipo
3.8. Conversion de Tipo
3.8.1. Implicita
3.8.1.1. Es Automatica
3.8.1.1.1. Valores Primitivos, soporta un mayor rango de valores
3.8.1.2. Referencias
3.8.2. Explicita
3.8.2.1. cast
3.8.2.2. instanceof
3.9. Control de Flujo
3.9.1. Sentencias y Bloques
3.9.1.1. Sentecias de Expresion
3.9.1.2. Sentencias de Declaracion
3.9.2. Sentenfia il-else
3.9.2.1. Forma basica de flujo de control
3.9.3. Sentencia Switch
3.9.3.1. selecciona caso mediante etiqueta
3.9.4. Sentencia while y Do_while
3.9.4.1. repeticion controlada por expresion
3.9.5. Sentencia For
3.9.5.1. Repeticionpara un rango determinado
3.9.6. Sentencia Break
3.9.6.1. Salir de cualquier bloque
3.9.7. Sentencia Continue
3.9.7.1. Saltar al final del cuerpo de una repeticion
3.9.8. Sentencia Return
3.9.8.1. Termina la ejecucuionde un metodo
4. Manejo Excepciones
4.1. Concepto
4.1.1. evento que interrumpe el flujo normal de ejecución
4.2. Ventajas
4.2.1. Hace más legibles los programas
4.2.2. Transfiere el control en el anidamiento de invocaciones al lugar adecuado para su manejo
4.2.3. Permite agrupar errores y diferenciar errores
4.3. Jerarquía de Excepciones
4.3.1. Throwable
4.3.1.1. Error
4.3.1.1.1. interno irrecuperable o agotamiento de recursos en el sistema de runtime de Java
4.3.1.2. Exception
4.3.1.2.1. Representa una situación excepcional
4.3.1.2.2. Subclases
4.3.1.2.3. Tipos de Excepciones
4.3.1.2.4. Lanzar Excepción
4.3.1.2.5. Capturando Excepciones
4.4. Clausula Finally
4.4.1. Cuando se lanza una excepción se detiene el procesamiento normal del método
4.4.2. se ejecuta siempre, incluso si se alcanza un return en condiciones normales.
5. Orígenes
5.1. Purpose
5.2. Stakeholders
5.3. Project Team
5.4. Related Documents
5.5. Author(s)
5.6. Sign-Off List
5.6.1. Training
5.6.2. Channels
5.6.3. International
5.6.4. Public Sector
5.6.5. Sales
5.6.6. Marketing Communications
5.6.7. Product Management
6. Herencia
6.1. Deriva Clase Object
6.1.1. Toda Clase tien Object como raiz
6.2. Unica Superclase( Herencia Simple)
6.3. extends
6.3.1. Hereda
6.3.1.1. miembros
6.3.1.1.1. protegidos
6.3.1.1.2. publicos
6.3.1.1.3. sin modificador
6.3.1.2. Colisiones de nombres
6.3.1.2.1. nombre de una variable, la oculata
6.3.1.2.2. Metodos, overriden
6.4. Constructores en Clases Extendidas
6.4.1. Invoca en Constructor
6.4.2. Inicializa los Campos
6.4.3. ejectua constructor
6.5. Modificador FINAL
6.5.1. Variable
6.5.2. Metodo
6.5.3. Clase
6.6. Clase Object - Metodos de Utilidad General
6.6.1. public boolean equals(Object obj)
6.6.1.1. redefinido junto hashCode
6.6.2. public int hashCode()
6.6.2.1. redefinido junto equals
6.6.3. protected Object clone()
6.6.3.1. Clona un objeto
6.6.3.1.1. implementa interfaz CLonable
6.6.4. public final Class getClass()
6.6.5. public void finalize()
6.6.6. public String toString()
6.7. Clases y Metodos Abstractos
6.7.1. Abstraccion
6.7.1.1. comportamiento tiene sentido par algunos objetos
6.8. Extender Clases
6.8.1. clases extendida, es tipo de la superClase
6.8.1.1. pixel, punto
6.8.1.1.1. punto - circulo
7. Caracteres, String y otros tipos de Datos
7.1. Arreglos
7.1.1. Agrupaciones ordenadas
7.1.2. primitivos o referencias
7.1.3. Dimensiones se omiten en declaracion
7.1.4. Creacion
7.1.4.1. varaible = new tipo(tamaño)
7.1.5. Tamaño
7.1.5.1. variable.lenght
7.1.6. Copiado
7.1.6.1. Arraycopy (System)
7.1.7. Utilidades
7.1.7.1. Clase Unitaria
7.1.7.1.1. java.util.Arrays
7.2. Caracteres y Strings
7.2.1. Clases Basicas para Caracteres
7.2.1.1. Character
7.2.1.1.1. Metodos
7.2.1.2. String
7.2.1.2.1. Crear en diversas situaciones
7.2.1.3. StringBuffer
7.2.1.3.1. Usar siempre new
7.2.2. Metodos Accesores (Comunes)
7.2.2.1. length()
7.2.2.2. charAt()
7.2.2.3. `subString()
7.2.2.4. toString()
7.2.3. Metodos Especificos de String
7.2.3.1. indexOf()
7.2.3.2. compareTo()
7.2.3.3. concat()
7.2.3.4. toLowerCase()
7.2.3.5. etc
7.2.4. `Metodos StringBuffer
7.2.4.1. append()
7.2.4.2. capacity()
7.2.4.3. insert()
7.2.4.4. delete()
7.2.4.5. etc
7.3. Numeros
7.3.1. Clase Number
7.3.1.1. Metodos
7.3.1.1.1. byteValue()
7.3.1.1.2. doubleValue()
7.3.1.1.3. intValue()
7.3.1.1.4. etc
7.3.1.2. Clases Extendidas de Number
7.3.1.2.1. Byte, Double, Float, Integer, Long, Short
7.3.2. Funciones Matemativas
7.3.2.1. java.lang.Math
7.4. Date
7.4.1. java.util.Date
7.4.1.1. Constructor por defecto
7.4.1.1.1. Operaciones
7.4.1.1.2. Clases Unitarias
8. Clases y Objetos
8.1. Conceptos Generales
8.1.1. Clase
8.1.1.1. Tiene Metodos
8.1.1.1.1. Tiene Firma
8.1.1.1.2. implementacion define su semantica
8.1.2. Campos
8.1.2.1. Definen el estado
8.2. Modificadores
8.2.1. public
8.2.2. abstract
8.2.3. final
8.3. Variavles miembros
8.3.1. Denominados Campos
8.3.1.1. compoartir entre todos los objetos de una clase con static
8.4. Control de Acceso de Miembors
8.4.1. Privado
8.4.2. Paquete
8.4.3. Protegido
8.4.4. Publico
8.5. Creacion de Objetos
8.5.1. Declaracion no crea, referencia a un onjetos (null)
8.5.2. new, runtime asigna suficiente memoria
8.5.2.1. Recolector de Basura
8.5.3. runtime retorna la referencia al nuevo objeto
8.6. Constructores
8.6.1. Varaibles miembor
8.6.1.1. Inicializadas explicitamente en la declaracion
8.6.2. Mmismo nombre d ela clase
8.6.3. Una calse puede tener varios constructores
8.6.4. Provee un estado inicial
8.6.5. Construir un objeto puede ser costoso
8.6.6. Si no se define uno, el compilador asigna uno por defecto.
8.6.6.1. publico
8.6.6.2. Constructor sin argumentos, no hace nada
8.6.7. Control de Acceso
8.6.7.1. private
8.6.7.2. protected
8.6.7.3. public
8.6.7.4. Sin especificar
8.6.7.4.1. Msimo paquete
8.7. Metodos
8.7.1. Manipula el estado de un Objeto
8.7.2. no permite un numero como argumento
8.7.3. parametros se pasan por valor
8.7.3.1. primitivos
8.7.3.2. referencias
8.7.3.2.1. Referencia se copia y no Objeto
8.7.4. Control de Acceso
8.7.4.1. private
8.7.4.2. accesor
8.7.4.2.1. Solo lectura
8.8. Referencia THIS
8.8.1. Usar solo en un metodo no estatico
8.8.2. Refiere al objeto actual
8.8.3. Uso
8.8.3.1. Pasa referencia del objeto actual como parametro a otro metodo
8.8.3.2. Colusion de nombres
8.8.3.3. Acceso a miembros acultos de una superclase, se usa SUPER
8.8.3.3.1. Sobrecarga de Metodos
8.9. SobreCarga de Metodos
8.9.1. Cada metodo tiene firma
8.9.1.1. Metodos mismo nomnres, diferentes parametros
8.10. Metodos Estaticos
8.10.1. Unico para una Clase
8.10.2. Variable miembro estativo
8.10.2.1. Unica variable
8.10.3. Metodo Estatico
8.10.3.1. Invoca en nombre de toda la calse
8.11. Recolector de Basura
8.11.1. Automatica
8.11.1.1. No liberar memoria explicitamente
8.12. Metodos
8.12.1. Metodo Finalize
8.12.1.1. Metodo de finalizacion antes de liberar memoria
8.12.2. Metodo main
8.12.2.1. En cada aplicacion
8.12.2.1.1. public,estaico o void
8.12.3. Metodo toString
8.12.4. Metodos Nativos
8.12.4.1. Programas Java usen codigo no escrito en Java
8.12.4.2. Pierde portabilidad y seguridad
8.13. Clases Anidadas
8.13.1. Clases miembro de otra clase
8.13.1.1. Acceso ttal
8.13.2. Clases Internas
8.13.2.1. No es estatica
8.13.2.1.1. No definemiembros estaticos
8.13.2.2. public o private
8.13.2.3. crea Objetos de la clase interna dentro de la que pertenece