Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gonzalo Mndez Pozo Dpto. de Ingeniera de Software e Inteligencia Artificial Universidad Complutense de Madrid
Historia de Java
Abril 1991: Proyecto Green (Sun) software para dispositivos electrnicos inteligentes y televisin interactiva. Entorno de operacin fiable, portable y eficiente.
El resultado: Lenguaje Oak
Qu es Java?
Un lenguaje de programacin orientado a objetos desarrollado por Sun Microsystems
Encapsulacin, herencia y polimorfismo Fuertemente tipado Gestin automtica de la memoria (recogida de basura) Soporte para concurrencia (multihilo) Gestin de excepciones Constructores independientes de la arquitectura del procesador
Gonzalo Mndez - Dpto. Ingeniera de Software e Inteligencia Artificial
Qu es Java?
Acompaado por un conjunto de bibliotecas (API de Java)
Desarrollo de interfaces grficas de usuario (AWT, Swing) Conectividad (sockets, RMI, CORBA, IDL, JDBC) Utilidades (Vector, Stack, Hashtable, Date, etc.) Funciones matemticas Grficos 2D y 3D
Qu es Java?
Apropiado para Internet
Ejecutable en mltiples plataformas Fcil de distribuir Seguridad Soporte para interaccin con el usuario:
Grficos Tipos de datos arbitrarios Descarga del servidor
Desventajas de Java
Eficiencia: Java era hasta 30 veces ms lento que C++ a causa del tiempo invertido en:
Recogida de basura Sincronizacin de threads Otras actividades (carga de clases, comprobacin de lmites, gestin de excepciones)
Algunas soluciones:
Mejores compiladores Mejores mquinas virtuales Optimizadores de bytecode Compiladores nativos estticos (se pierde portabilidad) Chips Java Mejor cdigo fuente
Gonzalo Mndez - Dpto. Ingeniera de Software e Inteligencia Artificial
Tecnologas Java
J2SE: Edicin estndar
Para desarrollar aplicaciones y applets
Desarrollo en Java
Editores genricos
Emacs, UltraEdit
IDEs
NetBeans, Eclipse, WSAD, JBuilder
Java vs C++
Sin algunas cosas
Punteros, direcciones, estructuras (struct y union) Preprocesado Herencia mltiple, sobrecarga de operadores Tipos sin signo (unsigned), goto, variables y funciones globales
Ms seguro
Recogida de basura, interfaces, paquetes, arrays con lmites, soporte para concurrencia y sincronizacin
Gonzalo Mndez - Dpto. Ingeniera de Software e Inteligencia Artificial
Java vs C++
El cdigo Java es ms sencillo
recogida de basura Las facilidades en tiempo de ejecucin ms avanzadas Las interfaces simplifican la jerarqua de herencia
Java vs C++
C++
Compilar + enlazar = EXE
JAVA
No hay .exe Compilar .class Ejecutar .class sobre la mquina virtual
Ejecutar
java HolaMundo Sin .class Imprime Soy pequen....mmame!