JavaSE
Introducción
Historia
1990: Diseñado inicialmente por James Gosling
1992: nombre "Oak", Duke es la mascota
1995: cambio de nombre a "Java", lanzamiento oficial de Sun
1996: JDK 1.0
1997: JDK 1.1
1998: J2SE 1.2
2000: J2SE 1.3
2002: J2SE 1.4
2004: J2SE 5.0
2006: Java es open source, JavaSE 6
2009: Oracle compra Sun
Ediciones
JavaEE
Enterprise
JavaSE
Standard
JavaME
Mobile
Principios
Simple, orientado a objetos
Robusto y seguro
Arquitectura neutra y portable
Alta performance
Interpretado, multithreaded, dinámico
Arquitectura
Java Virtual Machine JVM
Programa nativo
Plataforma específica
Ejecuta bytecode
Generado por el compilador Java
.class
Verificador de bytecode
Java Runtime Environment JRE
Necesaria para ejecutar
Java Development Kit JDK
Necesaria para desarrollar
Multiplataforma
Garbage collector
Compilación
HolaMundo.java
Se compila con javac
HolaMundo.class
Se ejecuta en la JVM
IDE
Eclipse
NetBeans
IntelliJ Idea
JDeveloper
Sintaxis
Comentarios
Una línea //
Multilínea /* */
Javadoc /** */
Identificadores
Case sensitive
Comienza con letra, '_', '$'
Incluye letras o números
Java Keywords
Variables
Primitivos
Entero
byte
short
int
long
Real
float
double
Booleano
boolean
Caracter
char
Operadores
Aritméticos
+ - * / % ++ --
Lógicos
&& || !
Relacionales
== != < > <= >=
Asignación
= += -= *= /=
Ternario
?:
Estructuras de control
if / else
switch / case
while
do while
for
break / continue
Constantes
public static final
Arreglos
Arreglos de objetos
Arreglos de primitivos
Strings
String cadena = "cadena";
Concatenar con +
Programación orientada a objetos
Beneficios
Encapsulamiento
Reutilización
Bajo acoplamiento
Alta cohesión
Objeto
Instanciar un objeto: MiObjeto obj = new MiObjeto()
Utilizar un objeto: obj.metodo();
Finalizando un objeto
Llamado por el GC
finalize()
Clase
atributos
métodos
Overloading
Reutilizar el nombre del método
Diferente argumentos
Overriding
Sobreescribir el método
Mismos argumentos
constructores
Declaración una clase: class
Interface
Solo declara métodos
No se puede instanciar
Declarar una interface: interface
Implementar una interface: implements
Modificadores
Acceso
public
protected
default
private
Otros
final
No puede ser modificado
Aplica
Clases
Variables
Métodos
abstract
No puede ser instanciado
Aplica
Clases
Métodos
static
Asociado a la clase, no a la instancia
Aplica
Variables
Métodos
native
Su implementación está fuera de la JVM
Aplica a métodos
transient
No se persiste
Aplica a variables
volatile
No es de uso común
Las variables no pueden ser modificadas de forma asíncrona
Aplica a variables
synchronized
Controla el acceso concurrente en hilos
Herencia
Reutilizar atributos y métodos de la clase padre
Heredar una clase: extends
Encapsulación
Ocultar información
getters/setters
Polimorfismo
Un objeto se comporta de diferentes formas
Paquetes
Características
Evita la colisión de nombres
Organización de clases
Correspondencia con estructura de directorios
Uso
Creación: package net.lshimokawa.mipaquete;
Importar clases de otros paquetes: import
Convención de nombres
Dominio invertido
Paquete base
net.lshimokawa.paquete
Excepciones
Introducción
Evento que ocurre dentro de la ejecución del programa
Interrumpe el flujo normal de ejecución
Separa el flujo normal del programa del tratamiento de excepciones
Se pueden propagar las excepciones
Uso de excepciones
try
Bloque de código que requiere tratamiento de excepciones
catch
Tratamiento de la excepción
Excepciones específicas a genéricas
finally
Se ejecuta siempre
Sea flujo normal o una excepción
Propagación
throw
throws
Tipos
Checked
Errores recuperables
Heredan de Exception
El compilador te obliga a tratarlas
Bloque try-catch o throws
Unchecked
Errores no recuperables
Heredan de RuntimeException
El compilador no te obliga a tratarlas
Buenas prácticas
Cerrar los recursos, uso de finally
No usar excepciones en control de flujo
No suprimir ni ignorar excepciones
No atrapar excepciones generales
Loggear las excepciones solo una vez
JDBC
Introducción
Java Database Connectivity
API que permite ejecutar operaciones sobre BD
Colección de interfaces
Paquete: java.sql
Drivers
Independientes de la BD
Tipos
JDBC-ODBC bridge
Open Database Connectivity de Microsoft
Native-API partly Java technology-enabled driver
Net-protocol fully Java technology-enabled driver
Native-protocol fully Java technology-enabled driver
API
DriverManager
Carga el driver de BD
Connection
Abre la conexión
Cierra la conexión
Commit
Rollback
Statement
Prepara y ejecuta los querys
PreparedStatement
CallableStatement
Para StoredProcedures
ResultSet
Almacena el resultado del query
Itera sobre los resultados
Threads
Introducción
Similar a un proceso real
Flujo secuencial de control
Considerado light, se ejecuta dentro del contexto del programa
Propia pila de ejecución y contador de programa
Implementación
Heredar la clase Thread
Implementar la interface Runnable
Implementar el método run()
Estados
Thread states
Thread scheduler
Depende de la JVM
Usa su propio algoritmo
No es determinable
Thread priorities
Entero del 1 al 10
Preferencia de la prioridad más alta
Utilizado por el thread scheduler
Prioridad por defecto: 5
Sincronizando
El método
Utilizar el modificador synchronized en el método
Bloque
Abrir un bloque con synchronized
Collections Framework
Introducción
Colección: objeto que agrupa varios elementos como una unidad
Consta de
Interfaces
Implementaciones
Algoritmos
Beneficios
Reduce el esfuerzo al programar
Incrementa la performance y calidad
Interoperatibilidad
Reduce el esfuerzo de aprender nuevas APIs
Reduce el esfuero de diseñar nuevas APIs
Reutilización
API
Collection
Set
HashSet
TreeSet
List
ArrayList
LinkedList
Map
TreeMap
HashMap
WeekHashMap
Collections
Utilitario para manejo de colecciones
Arrays
Utilitario para el manejo de arreglos
JavaSE
Added: 2010-02-02 04:46:29
From: (Joined 2009-12-01 22:08:05)
1511 views |0 downloads
JavaSE