Escolar Documentos
Profissional Documentos
Cultura Documentos
Cecilia Hernndez
2007
Introduccin a Java
Recolector de basura
Memoria es liberada automticamente cuando JMV lo
determina
Plataforma Java
Incluye
J2SE Java 2 Standard Edition
J2EE Java 2 Enterprise Edition
Java ME Java APIs para desarrollo de aplicaciones en
PDAs y celulares
Compilador Just in time. En lugar de interpretar una
instruccin a la vez, interpreta el bytecode completo a
cdigo nativo en mquina cuando se carga en MV
Versin
Version actual de Java es normalmente referida a 1.6
o 6.0
Java
Documentacin
http://java.sun.com/developer/onlineTraining
Programando en Java
Primer programa
public class Hello {
public static void main(String[]
args) {
System.out.println("Hola,
amigo!!");
}
}
default
do
double
else
extends
final
finally
float
for
goto
if
private
this
implements protected throw
import
public
throws
instanceof
return
transient
int
short
try
interface
static
void
long
strictfp
volatile
native
super
while
new
switch
package
synchronized
Tipos de datos
Tipos primitivos
Tipos
Constantes
Declaracin
static final <type>
<name> = <value> ;
public
Ejemplos
public static final int DAYS_IN_WEEK = 7;
public static final double INTEREST_RATE =
3.5;
public static final int SSN = 658234569;
Control de flujo
Ciclos
for(),
while(), do-while()
Condicionales
If
else
switch (expresion){
case n: sentencias;
case m: sentencias;
default: sentencias;
}
Objetos
Variables de referencia
Mtodos estticos
Entrada de datos
Salida de datos
System.out.print (ln)
http://java.sun.com/docs/books/tutorial
/essential/io/index.html
Strings
Clases
Concretas
Todos
Abstractas
Al
Interfaces
No instanciables
Una clase puede implementar cualquier nmero de
interfaces
disea
Como se capturan las caractersticas comunes
en un diseo?
Se quiere definir/describir (estas caractersticas) solo
una vez, sin repetirlas en cada clase
Como se relacionan distintas clases con partes
comunes del diseo ?
Herencia
Superclases
Overloading y Overriding
Overloading
Varios
Overriding
Usando
herencia
Clase A superclase
Define mtodo dibujar()
Clase B subclase
Redefine mtodo dibujar()
Excepciones
Throws vs throw
throw :
Un objeto puede detectar una excepcin y enviarla como
respuesta al mensaje.
throws :
public
IllegalArgumentException
Valor de parmetro es inapropiado
NullPointerException
El valor del parmetro es null, cuando no debera
IndexOutOfBoundsException
Arreglo o lista esta fuera de rango
FileNotFoundException
No encuentra archivo
InterruptedException
Se produce una excepcin por interrupcin
IOException
Excepciones producidas en E/S
Paquetes
Importando paquetes
Creando paquetes
package cl.udec.inf.pedro;
public class Cuenta{
}
Cuando la sentencia package no se agrega la
clase pertenece al paquete por defecto
Implementaciones de Colecciones
en Java
Arrays pueden contener datos primitivos u objetos mientras que ArrayLists slo
objetos
Arrays son de tamao fijo, mientras que ArrayLists crecen dinmicamente
Ventaja de ArrayList
No se necesita saber tamao a priori
Desventaja
No se puede ocupar la notacin [] para obtener elementos
Vectors
Similar a ArrayLists
Mtodos de acceso sincronizados, luego ms lento
Se puede usar notacin [] directamente, adems de una serie de otros mtodos
LinkedLists
Hebras y Sincronizacin
Hebra
Una
Creando hebras
/** Opcin 1 */
import java.lang.*;
public class A extends Thread
{
private:
public A(){}
public void run()
{
....
}
public static void main(String[]
args){
A thread1 = new A();
thread1.start();
}
}
/** Opcin 2 */
import java.lang.*;
public class B implements Runnable
{
private:
public B(){}
public void run()
{
....
}
public static void main(String[]
args){
B b = new B();
Thread thread1 = new Thread(b);
thread1.start();
}
}
join
Permite
sleep
Una
Sincronizacin
Sincronizacin
Keyword synchronized para indicar, bloque o mtodo sincronizado, slo
una hebra puede ejecutarse dentro de bloque o mtodo sincronizado
Paquete java.util.concurrent
Operaciones atmicas: (concurrent.atomic)
Acciones atmicas sobre variables voltiles
Variable volatile utilizada para decir a compilador que variable puede ser
modificada por mltiples hebras y se necesita ltimo valor almacenado
Locks
Hasta java 1.4 cada objeto tiene un lock asociado
Desde java 1.5 construcciones de locks para locks, LectoresEscritores y locks
reentrantes
Semforos
Desde java 1.5
http://java.sun.com/javase/6/docs/api/
Monitores
Usar keyword synchronized para exclusin mutua en mtodos
Hasta java 1.4 slo soportaba una variable de condicin por objeto
wait() y notifyAll() como acciones en variable de condicin (En Java, nica por
objeto)
Monitor tipo Mesa luego, wait() debe ser encerrado en ciclo while()