Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Java
Jorge Juan Gómez Basanta
WebSphere IT Specialist
jgomezb@mx1.ibm.com
Abril 2005
Java: Plataforma y versiones
J2SE: Standard Edition, desarrollo Cliente-servidor
J2EE: Enterprise Edition, EJBs, Servlets, JSPs
J2ME: Mobile Edition
JDK: Java Developer Kit: compilador, librerías, ...
JRE: Java Runtime Environment: JVM, librerías, para ejecutar
aplicaciones
Introducción a Java
La mayoría de los programas son compilados o interpretados
para ser ejecutados en una computadora
Java es compilado e interpretado
Primero se traduce un programa en un lenguaje intermedio
conocido como Java bytecodes
El interprete parsea y ejecuta cada Java bytecode en la
computadora
Los programas Java se ejecutan dentro de una Java Virtual
Machine
Garbage collection
Cuando la memoria es asignada, debe ser liberada cuando no es
necesaria
En otros lenguajes esta tarea pertenece al desarrollador
Java tiene un sistema de rastreo de asignación de memoria
Verifica y libera la memoria cuando ya no es ocupada
El proceso es automático
Varía en diferentes implementaciones del JVM
JRE
Realiza tres tareas principales:
Carga el código: Classloader
Carga todas las clases requeridas
Verifica el código: Bytecode verifier
Se verifica si el código se apega a la especificación
Que no viole la integridad del sistema
Tipos de parámetros
Conversiones ilegales
Ejecuta el código: Runtime interpreter
Aplicación Java Básica
public class HelloWorld
{
public static void main(String args[])
{
System.out.println(“Hello World”);
}
}
/* múltiples líneas */
De método
Ejemplo:
public Persona obtenerPersona(int idPersona) throws SQLException { ... }
Arreglos multidimensionales
int dosDimensiones [][] = new int[4][]; // no rectangular
dosDimensiones[0] = new int[5];
dosDimensiones[1] = new int[8];
public void setFecha(int anio, int mes, int dia, int hora, int minutos) { ... }
Programación Orientada a Objetos (2)
Constructores
Al crear una instancia con new Xxx() se ejecuta un constructor.
Polimorfismo
Un objeto solo tiene una forma
retirar e imprimirBalance.
System.out.println(“Hola”);
Modificadores (2)
final
Una clase marcada como final no puede ser extendida
Un método marcado como final no puede ser “overloaded”
Una variable marcada como final es una constante
abstract
Una clase que declara la existencia de métodos pero no su
implementación es una clase abstracta
No se puede crear una instancia de una clase abstracta
Una clase abstracta puede ser extendida
Modificadores (3)
interface
variación de una clase abstracta
todos sus métodos son abstractos
solo puede tener variables static final
permite “darle la vuelta” a la herencia sencilla de Java
cuando una clase implementa una interface debe definir
todos los métodos de dicha interface
Es posible realizar llamadas a métodos de la interface en
cualquier objeto que la implemente.
Control de acceso avanzado
Las variables y métodos pueden tener cuatro niveles de acceso:
protected Si Si Si
default Si Si
private Si
Diferencias entre == y equals()
== es verdadero cuando se comparan variables con la misma
referencia a un objeto
equals() por lo general compara a dos objetos en base a su
contenido. Esto solamente ocurre cuando el Objeto que se
compara ha sobreescrito este método.
Wrapper classes
Java no considera a los tipos primitivos como objetos.
Java proporciona clases para envolver a los tipos primitivos:
boolean → Boolean
byte → Byte
char → Character
short → Short
int → Integer
long → Long
float → Float
double → Double
int x = Integer.valueOf(str).intValue();
Colecciones
Una colección es un objeto que representa a un grupo de
objetos conocidos como sus elementos
ArrayList, Vector
HashSet, TreeSet
TreeMap, HashMap
Stack, LinkedList
...
Paquetes comunes
java.lang:contiene clases básicas del lenguaje, como String,
Math, Integer, Float, ...
java.net:contiene clases para realizar operaciones de red,
sockets y URLs
java.io:contiene clases que lidian con entrada y salida, por
ejemplo para escribir y leer archivos
java.util: clases para definir propiedades del sistema, manejo
de fechas, colecciones
java.text: clases para formato e internacionalización
Temas avanzados
Inner classes. Permiten agregar la definición de una clase
dentro de otra.
Threads. Un thread permite la ejecución concurrente de
diferentes tareas.
Reflection API: Permite conocer programáticamente la
estructura de una clase Java.
Archivo JAR: Permite empaquetar clases Java y otros archivos
en un solo archivo comprimido.