You are on page 1of 45

LENGUAJE JAVA

PROGRAMACIN ORIENTADA A
OBJETOS
Sesin 14

OBJETIVOS DEL TEMA


Capacitar al estudiante en el manejo del

lenguaje Java para el desarrollo de


aplicaciones
Lograr que el estudiante tenga criterios que
permitan seleccionar a Java como el
lenguaje de desarrollo cuando el caso lo
amerite

LENGUAJE JAVA
Historia
Aspectos generales
Elementos del lenguaje
Ambiente Integrado de

Desarrollo

HISTORIA
Java es un lenguaje que fue pensado para pequeos

electrodomsticos: microondas, tostadoras y


fundamentalmente televisores interactivos.
Sun Microsystems decidi crear una filial,
denominada FirstPearson Inc.
James Gosling se dio cuenta que las ventajas que
aportaba la eficiencia de C++ no compensaba el
gran coste de la prueba y depuracin de
aplicaciones C++.
Haba trabajado en el lenguaje Oak, partiendo de la
sintaxis de C++ pero remediando las deficiencias
de C++.

HISTORIA
Proyecto Green era un sistema de control completo

de los aparatos electrnicos y entorno de un hogar.


Se construy un ordenador experimental *7 donde
apareca la mascota de Java Duke.
FirstPerson cerr en 1994.
Se pens que Internet poda llegar a ser el terreno
adecuado para disputar a Microsoft su primaca
absoluta.
Con el cambio de nombre Oak fue presentado como
Java en mayo de 1995.
http://java.sun.com/features/1998/05/birthday.html .

Qu es Java?
Es un lenguaje de desarrollo de

propsito general, y como tal es valido


para realizar todo tipo de aplicaciones
profesionales.
Incluye una combinacin de caractersticas
que lo hacen nico y esta siendo adoptado
por multitud de fabricantes como
herramienta bsica para el desarrollo de
aplicaciones comerciales de gran
repercusin.

La Mquina Virtual de Java

El compilador de Java genera un cdigo

intermedio independiente de la plataforma


(bytecodes).
Los bytecodes pueden considerarse como el
lenguaje mquina de una mquina virtual, la
Mquina Virtual de Java(JVM).
Cuando se quiere ejecutar una aplicacin java,
al cargar el programa se puede:
Interpretar los bytescodes instruccin por

instruccin
Compilar los bytecodes para obtener el cdigo
mquina necesario para ejecutar la aplicacin en
el computador (compilador JIT Justo a Tiempo ).

Una de las caractersticas ms importantes es

que los programas ejecutables, creados por el


compilador de Java, son independientes de la
arquitectura.
Se ejecutan indistintamente en una gran
variedad de equipos con diferentes
microprocesadores y sistemas operativos
(Windows, Solaris, Linux), sin tener que
recompilarlos, como sucedera en C.
Es pblico. Puede conseguirse un JDK (Java
Developer's Kit) o Kit de desarrollo de
aplicaciones Java gratis.

Uso Tpico de Java


Distribucin de aplicaciones a travs de

Internet
Aplicaciones (programas independientes)

para intraredes, aplicaciones cliente/servidor.


Applets (pequeas aplicaciones que se
ejecutan como parte de una pgina web)
siempre y cuando el navegador soporte Java
Las aplicaciones son fiables. Pueden

controlar su seguridad frente al acceso a


recursos del sistema, es capaz de gestionar
permisos y criptografa.

Es un lenguaje bien estructurado, sin

punteros y sin necesidad de tener que


controlar la asignacin de memoria a
estructuras de datos u objetos.
Java impide hacer cosas extraas y,
adems, no permite abandonar la
programacin orientada a objetos, como
ocurre con otros lenguajes de
programacin.

Interpretado o Compilado?
Aunque estrictamente

hablando es interpretado,
necesita de un proceso
previo de compilacin.
Una vez compilado el
programa, se crea un fichero
que almacena lo que se
denomina bytecodes,
prcticamente al nivel de
cdigo mquina).
Para ejecutarlo, es necesario
un interprete, la JVM (Java
Virtual Machine) mquina
virtual Java.

Interpretado o Compilado?
Esta JVM se encarga de leer los bytecodes y

traducirlos a instrucciones ejecutables


directamente en un determinado microprocesador,
de una forma bastante eficiente.
El que deba ser interpretado no hace que sea
poco eficiente en cuanto a velocidad, ya que la
interpretacin se hace prcticamente al nivel de
cdigo maquina.
Es mucho mas rpido que cualquier otro programa
interpretado como por ejemplo Visual Basic,
aunque es mas lento que el mismo programa
escrito en C++.

Interpretado o Compilado?
La deficiencia en la velocidad puede ser

aminorada por los compiladores Just-InTime (JIT).


Un compilador JIT transforma los bytecodes
de un programa o un applet en cdigo
nativo de la plataforma donde se ejecuta,
por lo que es mas rapido.
Suelen ser incorporados por los
navegadores, como Mozilla o Internet
Explorer.

Mquina virtual de Java


Es la entidad que proporciona la

independencia de plataforma para los


programas Java compilados en byte-code.

Mquina virtual de Java


Si un mismo programa en byte-code puede ser

ejecutado en distintas plataformas es porque


existe un traductor de ese byte-code a cdigo
nativo de la maquina sobre la que se ejecuta.
Esta tarea es realizada por la JVM.
Existe una versin distinta de esta JVM para
cada plataforma. Esta JVM se carga en memoria
y va traduciendo al vuelo, los byte-codes a
cdigo maquina.
La JVM no ocupa mucho espacio en memoria, ya
que fue diseada para poder ejecutarse sobre
pequeos electrodomsticos como telfonos,
televisores, etc.

Herramientas de Programacin
en Java
Java SDK (Software Development Kit)
Compilacin de Aplicaciones Java: javac.exe
Ejecucin de aplicaciones Java(intrprete): java.exe
Ejecucin de Applets: appletviewer.exe
Generacin de documentacin: javadoc.exe
Creacin de archivos de distribucin JAR [Java
ARchives]: jar
Depuracin de aplicaciones java: jdb.exe
Desensamblador para la mquina virtual Java:
javap.exe
Generador de archivos fuentes y de cabecera (.c
y .h para clases nativas en C): javah.exe

Versiones de Java
1995 JDK 1.02
1996 JDK 1.1
1998 JDK 1.2 (Java 2 SDK v1.2)
2000 JDK 1.3 (Java 2 SDK v1.3)
2002 JDK 1.4 (Java 2 Platform, Standard

Edition v1.4)
2004 JDK 1.5 (Java 2 Platform, Standard
Edition v5.0)
2006 JDK 1.6.0.0
2010 JDK 1.6.0.20

Ediciones
J2SE (Standard Edition): Aplicaciones y

Applets
J2EE (Enterprise Edition): Servidores de
Aplicaciones
J2ME (Micro Edition): Aplicaciones para
dispositivos mviles

Entornos Integrados de
Desarrollo: IDEs
Gratuitos
Eclipse (http://www.eclipse.org)
NetBeans (http://java.sun.com)

De pago
Borland Jbuilder
IBM Visual Age for Java
Sybase PowerJ
Metrowerks CodeWarrior

Instalacin de la Herramienta
Instalacin de JDK:
jdk-6u12-windows-i586-p.exe

Revisar la estructura de los directorios


bin: Es donde se almacenan los ficheros ejecutables

del entorno de desarrollo: javac, jdb, java y appletviewer.


demo: Contiene varios directorios con ejemplos de
programas y applets escritos en Java.
include: Contiene cabeceras para utilizar funciones
escritas en C.
lib: Contiene las libreras de clases proporcionadas
por el lenguaje. Estas libreras se encuentran
comprimidas en el fichero classes.zip (NO SE DEBE
DESCOMPRIMIR ESTE ARCHIVO).

Configuracin de la
Herramienta

El desarrollo y ejecucin de aplicaciones en Java

exige que las herramientas para compilar


(javac.exe) y ejecutar (java.exe) se encuentren
accesibles.
El computador, desde una ventana de comandos,
solo es capaz de ejecutar los programas que se
encuentran en los directorios indicados en la
variable PATH del computador (o en el directorio
activo).
Si se desea compilar o ejecutar cdigo en Java, el
directorio donde se encuentran estos programas
(java.exe y javac.exe) deber encontrarse en el
PATH.

Configuracin
Luego de instalar la mquina virtual de

Java se debe especificar en la variable


PATH el directorio donde se encuentran
los programas de Java para:
Compilar: javac
Ejecutar: java
Documentar: javadoc

Esto se puede realizar a travs del

comando path o a travs del Panel de


Control.

Configuracin
Digitando

set en una
ventana de
comandos se
muestran las
variables
definidas en
un sistema:

Configuracin
Java utiliza adems una nueva

variable de entorno denominada


CLASSPATH, la cual determina
donde buscar tanto las clases o
biblioteca de funciones de Java (el API
de Java) como otras clases de
usuario.

Configuracin
En Panel de Control -> Sistema -> Cambiar la

configuracin:

Configuracin
Al dar clic en

Cambiar la
configuracin, se
presenta la siguiente
ventana.
Luego se da clic en la
pestaa Opciones
avanzadas, y luego
en el botn
Variables de
entorno.

Configuracin
Entonces

se tiene en
pantalla la
siguiente
ventana:

Configuracin
Se verifica que la variable CLASSPATH este

especificada en el directorio donde se


encuentra instalado el ambiente de ejecucin
de Java (JRE: Java Runtime Environment) o el
SDK de Java (JDK):

Configuracin
Luego de ello, se agrega a la variable Path el

directorio donde se encuentra instalado Java:

Tanto en CLASSPATH como en Path se debe

adicionar el directorio actual: .

Configuracin
Para visualizar los valores de las variables PATH y

CLASSPATH se puede emplear el comando set:

Verificacin
Para verificar que est correctamente configurado,

en la lnea de comando se puede hacer:

Creacin y Ejecucin de
Aplicaciones Java

Fases en la Creacin y Ejecucin


de Programas en Java
Fase I: Editor
Se crea un programa con la ayuda de un editor
Se almacena en un fichero con extensin .java

Fase II: Compilador


El compilador lee el cdigo de Java (Fichero.java)
Si se detectan errores sintcticos, el compilador

nos informa de ello.


Se generan los bytecodes, que se almacenan en
ficheros .class
Fase III: Cargador de clases
El cargador de clases lee los bytecodes

(ficheros.class)
Los bytecodes pasan de disco a memoria principal

Fases en la Creacin y Ejecucin


de Programas en Java
Fase IV: Verificador de bytecodes
Comprueba que los bytecodes son vlidos y no

violan las restricciones de seguridad de la


mquina virtual Java.
Fase V: Interprete de bytecodes o compilador JIT
La mquina virtual de Java (JVM) lee los bytecodes

y los traduce al lenguaje que el ordenador


entiende (cdigo mquina).
NOTA: conforme se ejecuta el programa, se hace uso de la
memoria principal para almacenar los datos con los que
trabaja la aplicacin.

Creacin y Ejecucin de
Applets

Aplicacin Ejemplo
Cdigo Java: Archivo Programa.java

public class programa


{
public static void main(String[] args)
{
System.out.println("Hola");
}
}

Compilacin en la lnea de comandos

Javac Programa.java

Ejecucin

java Programa

Resultado

Applet Ejemplo
Cdigo Java: Fichero Saludo.java

import java.awt.*;
import java.applet.Applet;
public class Saludo extends Applet
{
public void paint(Graphics g) {
g.drawString("Hola",50,50);
}
}

Applet Ejemplo
Pgina Web: Fichero Saludo.html

<html>
<head>
<title>Applet Ejemplo</title>
</head>
<body>
<applet code="Saludo.class" width=300
height=200>
</applet >
</body>
</html>

Applet Ejemplo
Resultado

Caractersticas de Java
Es multiplataforma: se compilan en un bytecode

independiente de la mquina y todos los sistemas


operativos principales tienen entornos de ejecucin de
aplicaciones Java (Mquinas Virtuales).
Es seguro: puede forzarse restricciones sobre las
operaciones permitidas (los applets no acceden
directamente al hardware de la mquina). Al cargar un
programa en memoria, la mquina virtual Java verifica los
bytecodes de la aplicacin.
Es intrnsecamente orientado a objetos.
Funciona perfectamente en red.
Aprovecha caractersticas de la mayora de los
lenguajes modernos evitando sus inconvenientes. En
particular los del C++.

Caractersticas de Java
Tiene una gran funcionalidad gracias a sus libreras

(clases): para trabajar con colecciones y otras


estructuras de datos, ficheros, acceso a base de datos
(JDBC), interfaces grficas de usuario (JFC/Swing), redes
de ordenadores (RMI, Jini), aplicaciones distribuidas
(EJB), interfaces web (servlets/JSP), hebras, compresin
de datos, criptografa.
NO tiene punteros manejables por el programador,
aunque todo es punteros los maneja interna y
transparentemente.
El manejo de la memoria no es un problema, la gestiona
el propio lenguaje y no el programador, tiene un
recolector de basura.
Genera aplicaciones con pocos errores posibles.
Comprobacin estricta de tipos

Caractersticas de Java
Incorpora Multi-Threading (para permitir la ejecucin

de tareas concurrentes dentro de un mismo


programa).
El lenguaje Java puede considerarse como una
evolucin del C++.
La sintaxis es parecida a la de este lenguaje pero es
ms simplificada. No hay que tener archivos cabecera
aparte (C/C++), no existen macros (#define en C/C+
+), ya que son propensas a errores.
A pesar de que puede considerarse como una
evolucin del C++ no acarrea los inconvenientes del
mismo, ya que Java fue diseado partiendo de cero,
es decir, no necesitaba ser compatible con versiones
anteriores de ningn lenguaje como ocurre con C++ y
C.
Incluye una biblioteca portable para la creacin de
interfaces grficas de usuario (AWT en Java 1.0/1.1 y
JFC/Swing en Java 2)

Mitos y Realidades de Java


Mito

Realidad

Java es un lenguaje de
programacin para la web

Java es un lenguaje de
programacin de propsito
general
Uso estimado de Java:
5% applets (clientes
web)
45% aplicaciones de
escritorio (PCs)
50% aplicaciones en el
servidor (servlets/EJB)

Una vez escrito, funciona


donde sea.

Se puede conseguir, aunque se


debe comprobar, en especial
las interfaces grficas pueden
comportarse de forma
ligeramente distinta en
distintas plataformas.

Mitos y Realidades de Java


Mito

Realidad

La realidad y la independencia de
la mquina son gratis.

Aplicaciones un 20% ms lentas


que en C++.

Java acabar con la herramienta


X(Microsoft, C++)

Siempre existen ventajas y


desventajas.
Microsoft tiene su propia
alternativa: la plataforma
.NET
Determinadas aplicaciones es
mejor escribirlas en otros
lenguajes:
Utilidades simples y
eficientes en ANSI C
Sistemas complejos de
altas prestaciones en C+
+
Aplicaciones para

You might also like