Introducción a Java

Laten we beginnen. Het is Gratis
of registreren met je e-mailadres
Introducción a Java Door Mind Map: Introducción a Java

1. Origenes

1.1. 1991

1.1.1. James Gosling inicia el proyecto

1.1.1.1. Desea un código independiente

1.1.1.2. C++ no satisface

1.2. 1993

1.2.1. Aparece OAK

1.2.1.1. Similar a C++

1.2.1.2. Mas portable y seguro

1.3. 1994

1.3.1. Aparecen

1.3.1.1. WWW

1.3.1.2. Mosaic

1.4. 1995

1.4.1. Sun anuncia la disponibilidad de

1.4.1.1. Lenguaje Java

1.4.1.2. Browser HotJava

1.5. 2004

1.5.1. Versión J2se1.5-Beta

1.5.1.1. Incluye programación generica

2. Tecnología Java

2.1. Lenguaje de Programación

2.1.1. Orientado a Objetos

2.1.2. Sintaxis similar a C++

2.2. Plataforma

2.2.1. Maquina Virtual Java

2.2.2. Java API

2.2.3. Tres Versiones

2.2.3.1. J2SE

2.2.3.2. J2EE

2.2.3.3. J2ME

3. Caracteristicas

3.1. Simple y Orientado a Objetos

3.1.1. Simple de Aprender

3.1.2. Alta re-utilización y bibliotecas

3.2. Robusto y Seguro

3.2.1. Tipificado Fuerte

3.2.2. Recolección de Basura

3.3. Interpretado

3.3.1. Se compila en bytecode

3.3.2. Interpretado por JVM

3.4. Distribuido y Alto Desempeño

3.4.1. Compilación JIT

3.4.2. Movilidad de Código

3.5. Multi-hebra

3.5.1. Mejora interactividad de aplicaciones

3.6. Dinámico

3.6.1. Enlace y carga de aplicaciones

4. Aplicación

4.1. Comentarios

4.1.1. //texto

4.1.1.1. Una solo linea de comentario

4.1.2. /*texto*/

4.1.2.1. Varias lineas de comentario

4.1.3. /**texto*/

4.1.3.1. Comentarios de documentación

4.2. Método Main

4.2.1. Contiene un argumento único

4.2.2. Arreglo de Strings

4.3. Acceso a Recursos del Sistema

4.3.1. Provee una API

4.3.1.1. Application Programming Interface

4.3.1.2. Permite acceder a recursos

4.3.1.2.1. Ingreso de forma independiente del entorno

4.3.1.3. Definida en el paquete System

5. Applets

5.1. Es una aplicación pequeña

5.2. Uso normal en Web Browser

5.2.1. También visible en  appletviewer

5.3. Diferente modelo de ejecución

6. Importación de Clases y Paquetes

6.1. La palabra "import" permite importar clases de un paquete

6.1.1. import.java.applet*

6.1.1.1. Permite usar todas las clases del paquete java.applet

6.1.1.2. Applet es una clase del paquete java.applet

7. Definición de Subclases

7.1. La palabra "extends" para definir una suclase de otra

7.1.1. public class HolaMundo extends Applet {....}

8. Implementación de Métodos

8.1. Una clase puede implementar uno o mas métodos

8.1.1. public void paint(Graphics g)   {  g.drawString ("Hola Mundo", 50, 25); }

8.1.1.1. Un epplet debe implementar por lo menos uno de los siguientes métodos

8.1.1.1.1. init

8.1.1.1.2. start

8.1.1.1.3. paint

9. Funcionalidad de Java

9.1. Esencial

9.1.1. Objetos

9.1.2. Strings

9.1.3. Números

9.1.4. Estructuras de Datos

9.1.5. E/S

9.1.6. Propiedades del Sistema

9.1.7. Fecha

9.1.8. Hora

9.2. Interfaces Gráficas

9.2.1. AWT

9.2.2. Swing

9.2.3. Java2d

9.2.4. Java3d

9.3. Comunicación en la Red y Applets

9.3.1. Web

9.3.2. URL

9.3.3. Sockets UDP y TCP

9.3.4. Direcciones IP

9.4. Internacionalización

9.4.1. Adaptarse al lugar e idioma

9.5. Seguridad

9.5.1. Firma Digital

9.5.2. Gestión de Claves

9.5.3. Certificados

9.5.4. Control de Acceso

9.6. Threads (Hebras)

9.6.1. Programación con múltiples threads

9.7. Componentes de Software

9.7.1. Enchufar en arquitecturas existentes

9.8. Serialización de Objetos

9.8.1. Persistencia liviana y comunicación vía RMI

9.9. Acceso Uniforme a Base de Datos Relaciones

9.9.1. Java Database Connectivity (JDBC)

10. Herencia

10.1. Clases Extendidas

10.1.1. Todas las clases son extendidas

10.1.1.1. Toda clase se deriva

10.1.1.2. La clase Object implementa el comportamiento

10.1.2. Sólo se permite una única superclase

10.2. Reglas

10.2.1. Una subclase herada todos los miembros

10.2.1.1. protegidos

10.2.1.2. públicos

10.2.1.3. sin modificador

10.2.2. Colisiones en nombre

10.2.2.1. En caso de una variable, se oculta

10.2.2.2. En caso de un método, se redefine

10.3. Redefinición de Variables Miembros

10.3.1. Solo pueden ser ocultados

10.3.2. Para accederlos se puede usar la referencia "super"

10.4. Re definición de Métodos

10.4.1. Donde existen coincidencia de nombres

10.4.1.1. Sobrecarga

10.4.1.1.1. Definir más de un método con el mismo nomnre

10.4.1.1.2. Diferente firma

10.4.1.2. Redefinición

10.4.1.2.1. Reemplaza la implementación de la superclase

10.4.2. Métodos que no se pueden redefinir

10.4.2.1. finales

10.4.2.2. estáticos

10.4.3. Métodos que se deben redefinir

10.4.3.1. Métodos declarados abstractos en la superclase

10.5. Constructores en Clases Extendidas

10.5.1. Al crear un objeto, el orden de ejecución es:

10.5.1.1. 1. Invocar constructor de la superclase

10.5.1.2. 2. Inicializar los capos

10.5.1.3. 3. Ejecutar el cuerpo del constructor

10.5.2. Si se quiere usar un constructor especifico, invocar con "super (...)"

10.6. Modificador Final

10.6.1. Variable

10.6.1.1. No puede ser modificada

10.6.2. Método

10.6.2.1. No puede ser redefinido

10.6.3. Clase

10.6.3.1. No se puede derivar

10.7. Clase Object

10.7.1. Todas las clase tienen a Object como raíz

10.7.1.1. Todos heredan sus métodos

10.7.2. Existen dos Tipos de Métodos

10.7.2.1. Utilidad General

10.7.2.1.1. public

10.7.2.1.2. protected Object clone() clone throws CloneNotSupportedException

10.7.2.2. Soportar Hebras

10.8. Métodos equals y hashCode

10.8.1. Redefinidos conjuntamente

10.9. Clonación de Objetos

10.9.1. El método permite clonar un objeto

10.9.2. Implementa la interfaz "Cloneable"

10.10. Clases y Métodos Abstractos

10.10.1. Definir clases que definen sólo parte de su implementación

10.10.2. Una clase abstracta no requiere declarar métodos abstractos

10.10.3. Una clase con método abstracto, debe ser declarada como clase abstracta

11. Interfaces y Clases

11.1. Interfaces

11.1.1. Interfaz vs Clase Abstracta

11.1.1.1. Interfaz es una simple lista de métodos abstractos

11.1.1.2. La interfaz no implementa ningún método, la clase abstracta si

11.1.1.3. Una clase puede implementar varias interfaces, pero solo una superclase

11.1.1.4. Interfaz no puede ser parte de una jerarquía de  clases

11.1.2. Cuerpo de la Interfaz

11.1.2.1. Constantes implícitas

11.1.2.1.1. públicas

11.1.2.1.2. estáticas

11.1.2.1.3. finales

11.1.2.2. Métodos implícitos

11.1.2.2.1. públicos

11.1.2.2.2. abstractos

11.1.2.3. No se aceptan otros modificadores

11.1.2.3.1. private

11.1.2.3.2. protected

11.1.2.3.3. synchronized

11.1.3. Implementación

11.1.3.1. Define un conjunto de métodos

11.1.3.2. Una referencia a una interfaz permite suponer que los métodos existen

11.1.4. Herencia Simple vs Múltiple

11.1.4.1. Una clase puede extender solo una superclase

11.1.4.2. Una interfaz puede extender múltiples interfaces

11.1.4.3. Herencia múltiple con clases puede producir problemas

11.1.4.3.1. Diferentes implementaciones

11.1.5. Extensión

11.1.5.1. Al igual que las clases

11.1.5.1.1. Las interfaces pueden tener súper.interfaces

11.1.5.2. La interfaz hija, hereda las definiciones de la interfaz padre

11.1.5.3. Permite herencia múltiple

11.1.6. Interfaces comunes a implementar

11.1.6.1. java.util.Iterator

11.1.6.1.1. hasNext()

11.1.6.1.2. next()

11.1.6.1.3. remove()

11.1.6.2. java.util.Collection

11.1.6.2.1. add()

11.1.6.2.2. addAll(Collectio c)

11.1.6.2.3. clear()

11.1.6.2.4. contains()

11.1.6.3. java.lang,Comparable

11.1.6.3.1. compareTo(Object o)

11.1.6.4. java.lang.Cloneable

11.1.6.4.1. Vacia!

11.1.6.5. java.lang.Runnable

11.1.6.5.1. run()

11.1.6.6. java.awt.event.ActionListener

11.1.6.6.1. actionPerformed(ActionEvent e)

11.2. Packages

11.2.1. Contiene

11.2.1.1. Clases

11.2.1.2. Interfaces

11.2.1.3. Subpaquetes

11.2.2. Todos ellos relacionados

11.2.3. Mecanismo de Definición

11.2.3.1. En la primera línea de cada archivo fuente

11.2.3.1.1. Aparece

11.2.3.2. El nombre del paquete se antepone implícitamente a los nombres de

11.2.3.2.1. Clase

11.2.3.2.2. Interfaz

11.2.4. Referencias Externas

11.2.4.1. 1. Anteponer el nombre del paquete a cada tipo

11.2.4.2. 2. Mediante el "import"

11.2.5. Colisiones de Nombre entre Paquete

11.2.5.1. Si dos paquetes tienen el mismo nombre y requieren ser usados

11.2.5.2. Una solución es usar nombres anidados

11.2.5.2.1. proyecto.paquete.*

11.2.5.3. Usar el nombre de dominio de Internet de forma inversa

11.2.5.3.1. ec.edu.ucuenca.paquete.*

11.2.6. Control de Acceso

11.2.6.1. Clases e Interfaces

11.2.6.1.1. Público

11.2.6.1.2. Paquete

11.2.7. Paquetes y Directorios

11.2.7.1. Los nombres de paquete condicionan donde buscar las clases

11.2.7.2. Su jerarquía debe  ser similar a la de los directorios

11.2.8. Paquetes de Java (java. )

11.2.8.1. .lang

11.2.8.2. .io

11.2.8.3. .util

11.2.8.4. .math

11.2.8.5. .awt

11.2.8.6. .net

11.2.8.7. .rmi

11.2.8.8. .applet

11.2.8.9. .sql

11.2.8.10. .beans

11.2.8.11. .security

11.2.9. Extensiones a Java (javax. )

11.2.9.1. .swing

11.2.9.2. .servlet

11.2.9.3. .crypto

11.2.9.4. .accessibility

11.2.9.5. .naming

11.2.9.6. .transaction

11.2.9.7. .xml

11.2.9.8. .sound

11.2.9.9. .print

12. Manejo de Excepciones

12.1. Excepción corresponde a una interrupción de la ejecución

12.2. Si ocurre el evento, se lanza un throw

12.2.1. Se crea un objeto especial y se pasa al runtime

12.3. runtime, busca la excepción del tipo

12.4. Si se encuentra, invoca al manejador de errores

12.4.1. catch

12.5. Si no encuentra, termina el programa

12.6. Jerarquía

12.6.1. Deriva de la clase "Throwable"

12.6.2. Dos subclases

12.6.2.1. Error

12.6.2.1.1. Error interno irrecuperable

12.6.2.2. Exception

12.6.2.2.1. Situación excepcional

12.6.2.2.2. RuntimeException

12.6.2.2.3. IOException

12.7. Tipo de Excepciones

12.7.1. No Verificadas

12.7.1.1. Derivadas de la clase Error y RuntimeException

12.7.2. Verificadas

12.7.2.1. Otras clases de excepciones

12.8. Cláusula  finally

12.8.1. Se ejecuta haya o no excepción antes de retornar

13. Conceptos Basicos

13.1. Conjunto de Caracteres

13.1.1. Java utiliza Unicode

13.1.1.1. Conjunto de caracteres de 16 bits

13.1.2. Permite leer ASCII de 7 -bit

13.1.2.1. Latin-1

13.1.2.1.1. Convirtiéndolo a Unicode

13.1.3. Uno de los pocos editores que soporta Unicode

13.2. Identificadores

13.2.1. Deben comenzar:

13.2.1.1. Una letra

13.2.1.1.1. Incluido "_ " o "$"

13.2.2. Diferencia mayúscula de minúscula

13.2.3. Definidas algunas palabras reservadas

13.2.3.1. No pueden ser usadas como identificadores

13.3. Variables, Constantes y Datos Primitivos

13.3.1. Variable

13.3.1.1. Item de datos nombrados por identificador

13.3.1.2. Tiene un tipo

13.3.1.2.1. Debe ser declarado antes de usar

13.3.1.3. Definido por una visibilidad

13.3.2. Tipo de Datos

13.3.2.1. Posibles valores para una variable

13.3.2.2. Java define dos tipos de datos

13.3.2.2.1. Primitivos

13.3.2.2.2. Referencias

13.3.3. Declaración de Variables

13.3.3.1. [modificador] tipo variable

13.3.3.2. Las declaraciones pueden aparecer en cualquier parte del código

13.3.3.3. La visibilidad se limita al bloque en donde se declara

13.4. Operadores

13.4.1. Precedencia de Operadores

13.4.1.1. Unario

13.4.1.1.1. Posfijo

13.4.1.1.2. Prefijo

13.4.1.2. Creación y cast

13.4.1.2.1. new (tipo)

13.4.1.3. Multiplicativo

13.4.1.3.1. * / %

13.4.1.4. Aditivo

13.4.1.4.1. + -

13.4.1.5. Shift

13.4.1.5.1. <<

13.4.1.5.2. >>

13.4.1.5.3. >>>

13.4.1.6. Relacional

13.4.1.6.1. < > >= <= instanceof

13.4.1.7. Igualdad

13.4.1.7.1. == !=

13.4.1.8. AND

13.4.1.8.1. al bit

13.4.1.8.2. lógico

13.4.1.9. OR

13.4.1.9.1. exclusivo al bit

13.4.1.9.2. inclusivo al bit

13.4.1.9.3. lógico

13.4.1.10. Condicional

13.4.1.10.1. ?:

13.4.1.11. Asignación

13.4.1.11.1. =

13.4.1.11.2. /=

13.4.1.11.3. >>>=

13.4.2. Expresiones

13.4.2.1. Se evalúa de izquierda a derecha

13.4.2.2. Cada operando se evalúa antes de realizar la operación

13.4.2.3. Cada expresión tiene un tipo

13.4.3. Conversión de Tipo

13.4.3.1. Implícita

13.4.3.1.1. Es automática

13.4.3.2. Explícita

13.4.3.2.1. Cuando un tipo no se puede asignar a otro por conversión implicita

13.4.3.2.2. Se denomina "cast"

13.4.3.2.3. "instanceof"  permite verificar si se puede aplicar "cast"

13.4.4. Operadores

13.4.4.1. Operadores Aritméticos

13.4.4.1.1. Soporta para todo los tipos de números

13.4.4.1.2. Cambio de signo

13.4.4.2. Incremento

13.4.4.2.1. a++

13.4.4.3. Decremento

13.4.4.3.1. a--

13.4.4.4. Relacionales

13.4.4.4.1. Mayor que

13.4.4.4.2. Menor que

13.4.4.4.3. Mayor o igual que

13.4.4.4.4. Menor o igual que

13.4.4.4.5. Igual que

13.4.4.4.6. Diferente

13.4.4.5. Condicionales

13.4.4.5.1. La forma

13.4.4.5.2. El operador condicional

13.4.4.6. Asignación

13.4.4.6.1. El operador "="  corresponde a la asignación

13.4.4.6.2. Java soporta otras formas de asignación

13.5. Control de Flujo

13.5.1. Sentencias y Bloques

13.5.1.1. Un bloque se compone de

13.5.1.1.1. Sentencias de Expresión

13.5.1.1.2. Sentencias de Declaración

13.5.1.2. Toda sentencia termina con ";"

13.5.1.3. Un bloque se forma con {....}

13.5.2. Sentencia if-else

13.5.2.1. Forma básica de flujo de control condicional

13.5.2.2. El "else" se parea con el if mas cercano

13.5.3. Sentencia switch

13.5.3.1. Evalúa una expresión entera

13.5.3.1.1. Selecciona un caso mediante etiqueta

13.5.3.1.2. Si no encuentra etiqueta se salta a un default

13.5.3.1.3. Si no existe default, no se hace nada

13.5.4. Sentencia while y do-while

13.5.4.1. Repetición controlada por expresión booleana

13.5.4.1.1. while(exp-booleana) { sentencia }

13.5.4.1.2. do { sentencia} while(esp-booleana) ;

13.5.5. Sentencia for

13.5.5.1. Controla repeticiones para un rango de valores

13.5.5.1.1. for(exp-inicial; exp-booleana; exp-incremento) { sentencia }

13.5.6. Sentencias

13.5.6.1. break

13.5.6.1.1. Permite salir desde cualquier bloque

13.5.6.1.2. Se usa para terminar una repetición

13.5.6.1.3. Se puede usar una etiqueta para salir de bloques anidados

13.5.6.2. continue

13.5.6.2.1. Permite saltar al final de una repetición

13.5.6.2.2. Evalúa la condición de término

13.5.6.2.3. Usada para ignorar un elemento de proceso

13.5.6.3. return

13.5.6.3.1. Permite terminar la ejecución de un método

13.5.6.3.2. Retorna al invocador

14. Clase y Objetos

14.1. Conceptos Generales

14.1.1. Las clases contienen los métodos que definen la computación

14.1.2. Los campos o variables miembros definen el estado

14.1.3. Las clases proveen

14.1.3.1. Estructura para los objetos

14.1.3.2. Mecanismos para su creación

14.1.4. Un método tiene una firma

14.1.4.1. Pero su implementación define su semántica

14.2. Estructura de una Clase

14.2.1. Nombre de la clase

14.2.1.1. public class Nombre{

14.2.2. Variable y Control de Acceso del miembro

14.2.2.1. private int ID;

14.2.3. Constructor

14.2.3.1. public Nombre(int id) { ID=id;}

14.2.4. Firma del Método

14.2.4.1. public String miName(int id) { .....}

14.3. Modificadores de la Clase

14.3.1. public

14.3.2. abstract

14.3.2.1. No puede ser instanciada

14.3.3. final

14.3.3.1. No puede ser derivada

14.4. Variables Miembros

14.4.1. Cada objeto de una clase tiene sus propias instancias

14.4.1.1. Cada objeto tiene su propio estado

14.4.1.2. Cambio de estado en un objeto no afecta a otros objetos similares

14.4.2. Variables y métodos  miembros

14.4.2.1. No estáticos

14.5. Control de Acceso a Miembros

14.5.1. Todos los métodos y variables miembro están disponibles para el código de la propia clase

14.5.2. 4 posibles modificadores

14.5.2.1. Privado

14.5.2.1.1. private

14.5.2.2. Paquete

14.5.2.2.1. Miembros sin modificador

14.5.2.3. Protegido

14.5.2.3.1. protected

14.5.2.4. Público

14.5.2.4.1. public

14.6. Creación de Objetos

14.6.1. Persona p=new Persona("Pedro) ;

14.6.1.1. No crea un objeto, sino una referencia a un objeto

14.6.1.1.1. Inicialmente es null

14.6.1.2. Al usar el "new"

14.6.1.2.1. "runtime"  crea un objeto asignado a suficiente memoria

14.6.1.2.2. Inicia liza el objeto con algún constructor

14.6.1.3. Si no existe memoria suficiente, ejecuta el recolector de basura

14.6.1.3.1. Si aun no hay suficiente memoria, lanza la excepción "OutOfMemoryError"

14.6.1.4. Terminada la inicialización

14.6.1.4.1. runtime retorna referencia al nuevo objeto

14.7. Constructores

14.7.1. Un objeto recién creado debe inicializar las variables miembro

14.7.2. Las variables miembro pueden ser inicializadas explícitamente en la declaración

14.7.3. Los constructores cumplen con ese objetivo

14.7.3.1. Tienen el mismo nombre de la clase y pueden recibir parámetros

14.7.4. No son métodos, no retornan un valor

14.7.5. Una clase puede tener varios constructores

14.7.6. Razones para usar Constructores

14.7.6.1. Algunas clases no tienen un estado inicial razonable

14.7.6.2. Construir un objeto puede ser costoso

14.7.6.3. Motivos de seguridad de acceso

14.7.6.4. Si no se define un constructor, el compilador agrega uno

14.7.7. Control de Acceso de Constructores

14.7.7.1. private

14.7.7.1.1. Ninguna otra clase puede instanciarla

14.7.7.2. protected

14.7.7.2.1. Solo subclases y clases del mismo paquete puede crear instancias

14.7.7.3. public

14.7.7.3.1. Cualquier clase puede crear una instancia

14.7.7.4. Sin Especificador

14.7.7.4.1. Acceso de paquete

14.7.7.4.2. Solo clases del mismo paquete y la misma clase puede crear instancias

14.7.8. Constructor por Omisión

14.7.8.1. Si no se define un constructor

14.7.8.1.1. Asume un constructor sin argumentos

14.7.8.1.2. No hace nada

14.7.8.2. Se asume que existe, si no se ha definido un constructor sin argumentos

14.7.8.3. Es público si la clase lo es, caso contrario, no lo es

14.8. Métodos

14.8.1. Utilizado para manipular el estado del objeto

14.8.2. Java no permite un número variable de argumentos

14.8.3. Valores de Parámetros

14.8.3.1. Todos los parámetros se pasan por valor

14.8.3.1.1. Primitivos

14.8.3.1.2. Referencia

14.8.3.2. Si es parámetro es una referencia

14.8.3.2.1. Se va la copia y no el objeto

14.8.4. Control de Acceso

14.8.4.1. private

14.8.4.1.1. Para proteger campos de un acceso externo

14.8.4.2. Java no provee un modificador de solo lectura de campo

14.8.4.3. accesor

14.8.4.3.1. Para asegurar acceso de sólo lectura

14.8.4.3.2. Método que l hace indirectamente y de forma segura

14.8.5. Referencia this

14.8.5.1. Solo se puede usar en un método no estático

14.8.5.2. Hace referencia al objeto actual sobre el que se invoco el método

14.8.5.3. Se usa implícitamente al comienzo de cada miembro

14.8.5.4. Usos

14.8.5.4.1. Usualmente para pasar una referencia del objeto actual

14.8.5.4.2. Cuando existe oculta miento de un identificador debido a colisiones de nombre

14.8.5.4.3. Tener acceso a miembros ocultos de una superclase

14.8.6. Sobrecarga de Métodos

14.8.6.1. Cada método tiene una firma

14.8.6.1.1. Nombre del método

14.8.6.1.2. Número de tipos de parámetros

14.8.6.1.3. Tipo de retorno

14.8.6.2. Java permite varios métodos con mismo nombre

14.8.6.2.1. Pero debe tener diferentes parámetros

14.8.6.3. Al invocar un método sobrecargado

14.8.6.3.1. Se calza con los parámetros usados

14.8.7. Miembros Estáticos

14.8.7.1. Es único para toda una clase

14.8.7.2. Variable Miembro Estática

14.8.7.2.1. Existe una única variable para todos los objetos de la clase

14.8.7.3. Método Estático

14.8.7.3.1. Se invoca en nombre de toda la clase

14.8.8. Recolección de Basura

14.8.8.1. Java realiza recolección automática de basura

14.8.8.2. Solo existe new

14.8.8.3. Objeto que se detecta sin referencia

14.8.8.3.1. El sistema lo libera

14.8.9. Métodos

14.8.9.1. finalize

14.8.9.1.1. Permite ejecutar un método de finalización antes de liberar memoria

14.8.9.2. main

14.8.9.2.1. Se debe encontrar en cada aplicación de Java

14.8.9.2.2. Debe ser público, estático y void

14.8.9.3. toString

14.8.9.3.1. Si un objeto soporta el método

14.8.9.4. Nativos

14.8.9.4.1. Permite que programas Java usen código no escrito en Java

14.8.9.4.2. Aplicada para manipular hardware

14.8.10. Clases Anidadas

14.8.10.1. Definir una clase como miembro de otra clase

14.8.10.2. La clase anidad tiene acceso a todos los miembros de la clase que pertenece

14.8.11. Clases Internas

14.8.11.1. Si una clase se declara estática

14.8.11.1.1. Se llama clase anidad estatica

14.8.11.1.2. Si no es estática, es una clase anidada

15. Caracteres, String y Otros Tipos de Datos

15.1. Arreglos

15.1.1. Son agrupaciones ordenadas de elementos

15.1.1.1. Tipos Primitivos

15.1.1.2. Referencias

15.1.2. Las dimensiones se  omiten en la declaración de varaibles

15.1.3. Los indices varían desde 0 a largo-1

15.1.4. No se pueden derivar

15.1.5. Uso de Arreglos

15.1.5.1. Declaración sin tamaño

15.1.5.1.1. tipo[] variable;

15.1.5.2. Creación de una arreglo vacío

15.1.5.2.1. variable= new tipo[tamaño];

15.1.5.3. Creación e inicialización

15.1.5.3.1. tipo [] variable={val1, val2, val3, ... , valn}

15.1.5.4. Acceso a un elemento

15.1.5.4.1. variable[indice]

15.1.5.5. Tamaño del arreglo

15.1.5.5.1. variable.lenght()

15.1.5.5.2. variable.lenght()

15.1.6. Copiado

15.1.6.1. Se puede hacer uso del método "arraycopy"  de System

15.1.6.1.1. public static void arraycopy( ....... )

15.2. Caracteres y String

15.2.1. Clases Básicas para Caracteres

15.2.1.1. Character

15.2.1.1.1. Puede mantener un único valor

15.2.1.2. String

15.2.1.2.1. Almacena y manipula datos mutables

15.2.1.2.2. Múltiples caracteres

15.2.1.3. StringBuffer

15.2.1.3.1. Almacena y manipula datos mutables

15.2.1.3.2. Múltiples caracteres

15.2.2. Métodos

15.2.2.1. Character(char)

15.2.2.1.1. Constructor que crea un objeto inmutable

15.2.2.2. int comparateTo(Character)

15.2.2.2.1. Retorna entero que compara con otro carácter

15.2.2.3. boolean equals(Object)

15.2.2.3.1. Retorna true si son de igual valor

15.2.2.4. String toString()

15.2.2.4.1. Convierte a String

15.2.2.5. char charValue()

15.2.2.5.1. Retorna el valor del objeto

15.2.2.6. isUpperCase(char)

15.2.2.6.1. Retorna true si es mayúscula

15.3. Número

15.3.1. Clase Number

15.3.1.1. Retornan los valores de los números especificados

15.3.1.1.1. byte byteValue()

15.3.1.1.2. double doubleValue()

15.3.1.1.3. float floatValue()

15.3.1.1.4. int intValue()

15.3.1.1.5. long longValue()

15.3.1.1.6. short shortValue()

15.3.1.2. Clases Extendidas

15.3.1.2.1. Clases envolventes para

15.4. Date

15.4.1. Manejo de fecha/hora

15.4.2. Clase Utilitaria

15.4.2.1. java.util.Calendar

15.4.2.2. java.text.DateFormat

16. Streams y Archivos

16.1. Streams Básicos

16.1.1. Bytes y Caracteres

16.1.1.1. bytes: E/S

16.1.1.1.1. InputStream

16.1.1.1.2. OutputStream

16.1.1.2. carácter: Unicode

16.1.1.2.1. Reader

16.1.1.2.2. Writer

16.2. Archivos

16.2.1. Clases Básicas

16.2.1.1. FileReader

16.2.1.1.1. Lectura de Caracteres

16.2.1.2. FileWriter

16.2.1.2.1. Escritura de Caracteres

16.2.1.3. FileInputStream

16.2.1.3.1. Lectura de bytes

16.2.1.4. FileOutputStream

16.2.1.4.1. Escritura de bytes

16.2.2. Clase File

16.2.2.1. No corresponde a un stream

16.2.2.2. Hereda de Object

16.2.2.3. Definido en el paquete java.io

16.2.3. Clase RandomAccessFile

16.2.3.1. int skipBytes(iny)

16.2.3.1.1. Mueve el puntero el # de bytes hacia adelante

16.2.3.2. void seek(long)

16.2.3.2.1. Posiciona el puntero antes del byte especificado

16.2.3.3. long getFilePointer()

16.2.3.3.1. Retorna la posición del puntero