Download Programación Java - Pagina del servidor yaqui

Document related concepts
no text concepts found
Transcript
Programación Java
M.C. Jorge Eduardo Ibarra Esquer
Universidad Autónoma de Baja California
[email protected]
Febrero de 2006
Objetivos
† Conocer las características de la Tecnología
Java
† Comprender las características generales del
lenguaje de programación Java
† Revisar los conceptos principales de la
programación orientada a objetos
1
Objetivos
† Entender la estructura, organización y uso del
API del J2SE
† Conocer el funcionamiento del IDE Eclipse y
utilizarlo para desarrollar aplicaciones en Java
Contenido del curso
†
†
†
†
†
Introducción a la Tecnología Java
Instalación del JDK y del entorno de
desarrollo Eclipse
Elementos del lenguaje
Introducción a la programación orientada a
objetos con Java
Clases del paquete java.lang
2
Contenido del curso…
†
†
†
†
†
Manejo de excepciones
El paquete java.io y flujos de E/S
El paquete java.util
Desarrollo de aplicaciones gráficas
Hilos y aplicaciones concurrentes
¿Qué es Java?
† Lenguaje de Programación Orientado a
Objetos
† Sintaxis similar a C++
† Independiente de plataforma
† Lenguaje de programación de la World Wide
Web
3
La creación de Java
† 1990 – Java empezó como un proyecto
interno de Sun Microsystems
„ Stealth Project (Green Project)
„ Su objetivo era el de generar un lenguaje de
programación independiente de plataforma,
orientado a la electrónica de consumo,
principalmente a electrodomésticos.
† Microondas, tostadoras y TV interactiva
La creación de Java
†
†
Uno de los resultados del Green Project fue un
lenguaje denominado “Oak”
El otro resultado fue la mascota de Java “Duke”
4
La creación de Java
James Gosling
Patrick Naughton
Mike Sheridan
La creación de Java
Un factor que jugó un papel crucial en la
implementación de Java, fue el desarrollo del
World Wide Web.
Al igual que los dispositivos electrónicos, el
Web también demandaba programas que fuesen
portables.
5
El Web en sus inicios
WWW
El Web se hizo interactivo
WWW
6
Y el servidor ejecutó aplicaciones
WWW
BD
Aspectos importantes de Java
†
†
†
Applets y aplicaciones
Seguridad
Portabilidad
7
Applets
Applets
8
Seguridad
El modelo Sandbox
9
Aplicaciones
Portabilidad
Bytecode
JVM
10
Aspectos adicionales del lenguaje
†
Simple
†
Interpretado
†
Orientado a objetos
†
Alto rendimiento
†
Robusto
†
Distribuido
†
Multihilo
†
Dinámico
†
Arquitectura neutral
Java es simple
†
Es fácil dominar Java si se tiene cierta
experiencia programando:
„
„
Comprensión de los conceptos de la
programación orientada a objetos
Conocimientos de C/C++(Java hereda su sintaxis
y algunas de sus características)
11
Java es simple
†
Elimina los conceptos complicados de C/C++
„
„
„
Herencia múltiple
Apuntadores
Aritmética de apuntadores
Java es Orientado a Objetos
†
†
†
†
Todo en Java son clases y objetos
El modelo de objeto de Java es sencillo y de fácil
ampliación
Los tipos de datos simples se mantienen como “no
objetos” de alto rendimiento
Soporta las tres características propias del paradigma
de la orientación a objetos: encapsulación, herencia y
polimorfismo
12
Java es Robusto
†
Los programas en la Web se deben ejecutar de
forma fiable en una gran variedad de sistemas
† Java es un lenguaje estrictamente tipificado
† El código se comprueba durante la
compilación y durante la ejecución
Java es Robusto
†
Java se encarga internamente de reservar y
liberar la memoria
„
†
Garbage collector
Detección de errores
„
„
Detección de errores al compilar
Captura de errores en tiempo de ejecución
†
Manejo de excepciones
13
Java es multihilos
†
†
†
Java fue diseñado para satisfacer los requerimientos
del mundo real, de crear programas en red
interactivos
Al ser multihilo, Java permite muchas actividades
simultáneas en un programa
Los hilos (a veces llamados, procesos ligeros), son
básicamente pequeños procesos o piezas
independientes de un gran proceso
Java tiene una arquitectura neutral
†
†
El compilador Java compila su código a un archivo
objeto de formato independiente de la arquitectura
de la máquina en que se ejecutará
Cualquier máquina que tenga el sistema de ejecución
(runtime) puede ejecutar ese código, sin importar en
modo alguno la máquina en que ha sido generado
14
Java se interpreta
†
El código fuente Java se "compila" a un código de
bytes de alto nivel independiente de la máquina. Este
código (bytecodes) está diseñado para ejecutarse en
una máquina virtual que es implementada por un
sistema de ejecución (JRE – Java Runtime Environment),
que sí es dependiente de la máquina
App1
App2
App3
App4
App5
Máquina Virtual de Java
Windows
Intel
Linux
OS X
PowerPC/Gx
Solaris
Linux
SPARC
Manu Kumar – Stanford University 2003
15
Java es distribuido
†
†
Java se ha construido con extensas capacidades de
interconexión TCP/IP. Existen paquetes con clases
para acceder e interactuar con protocolos y
aplicaciones de red
La verdad es que Java en sí no es distribuido, sino
que proporciona los paquetes y herramientas para
que los programas puedan ser distribuidos, es decir,
que se ejecuten en varias máquinas conectadas en
red
Java es seguro
†
La seguridad en Java tiene dos facetas. En el
lenguaje, características como los punteros o el
casting implícito que hacen los compiladores de C y
C++ se eliminan para prevenir el acceso ilegal a la
memoria.
16
Java es portable
† Más allá de la portabilidad básica por ser de
arquitectura independiente, Java implementa otros
estándares de portabilidad para facilitar el desarrollo.
Los enteros son siempre enteros y además, enteros
de 32 bits en complemento a 2.
† Además, Java construye sus interfaces de usuario a
través de un sistema abstracto de ventanas de forma
que las ventanas puedan ser implantadas en entornos
Unix, PC o Mac.
Java es dinámico
†
Java se beneficia todo lo posible de la tecnología
orientada a objetos. Java no intenta conectar todos
los módulos que comprenden una aplicación hasta el
tiempo de ejecución. Las librerías nuevas o
actualizadas no paralizarán las aplicaciones actuales
(siempre que mantengan el API anterior).
17
¿Qué hay en Java?
Las plataformas de Java
† J2SE – Java 2, Standard Edition
† J2EE – Java 2, Enterprise Edition
† J2ME – Java 2, Micro Edition
18
Java 2, Standard Edition (J2SE)
La edición estándar de la Plataforma de Java
proporciona un ambiente completo para el
desarrollo de aplicaciones para computadoras de
escritorio y servidores.
Es la base para la plataforma J2EE y los Java
Web Services
Productos principales de la plataforma
J2SE
†
Java Runtime Environment JRE
APIs de Java
„ Máquina Virtual de Java JVM
„ Componentes para ejecutar Applets y Aplicaciones
escritas en Java
„
†
Software Development Kit SDK
„
Incluye el JRE más las herramientas para compilar,
depurar y documentar los programas escritos en
Java.
19
Java 2 Standard Edition
Copyright 1994-2004 Sun Microsystems, Inc.
El API J2SE
La interfaz de programación de aplicaciones (API) del
J2SE, define la forma en la que un applet o una
aplicación puede utilizar la funcionalidad de las
bibliotecas de clases del J2SE.
Consiste de tecnologías organizadas en dos grupos:
„
„
Core Java
Desktop Java
20
Core Java
Proporciona la funcionalidad escencial para escribir
programas útiles en áreas claves como son:
† Acceso a Bases de Datos
„
†
Seguridad
„
„
„
†
Java Database Connectivity (JDBC)
Java Authentication and Authorization Service (JAAS)
Java Cryptography Extension (JCE)
Java Secure Socket Extension (JSSE)
Tecnología para detección de fallos
„
Java Platform Debugger Architecture (JPDA)
Core Java
†
Tecnología para Documentación
„
†
Otras tecnologías
„
„
„
†
Herramienta Javadoc
Internationalization
Java Remote Method Invocation (RMI)
Java Naming and Directory Interface (JNDI)
Paquetes opcionales
„
„
„
„
Java Management Extensions (JMX)
JMX Remote API
Java Communications API
Java Telephony API
21
Desktop Java
†
†
Las tecnologías Desktop Java se pueden utilizar
junto con las Core Java para crear applets y
aplicaciones para PC con interfaces de usuario
completas que sean seguras, portables y de alto
desempeño.
Las aplicaciones Desktop Java se pueden ejecutar en
múltiples sistemas operativos, incluyendo Linux,
Windows, Macintosh, Solaris y otros.
Desktop Java
†
Tecnologías para despliegue de aplicaciones
„
Java Runtime Environment JRE
†
†
†
Java Plug-in
Java Web Start
Tecnologías de modelado de componentes
„
JavaBeans
22
Desktop Java
† GUI Toolkit
„ Java Foundation Classes (JFC/Swing)
† Accesibility
† Java 2D API
† Internationalization
† Sonido
„ Java Sound API
Desktop Java
†
Paquetes adicionales
„
„
„
„
„
Java Media Framework (JMF)
Java 3D API
Java Advanced Imaging API (JAI)
Java Speech API
Java Help System
23
Java 2, Enterprise Edition (J2EE)
†
†
La edición empresarial de Java define el
estándar de desarrollo de aplicaciones
empresariales multicapa basadas en
componentes.
Entre sus características se incluyen el soporte
a Web services y las herramientas de
desarrollo (SDK)
J2EE – Tecnologías utilizadas
†
†
†
†
†
†
†
J2SE
JDBC
CORBA
Enterprise Javabeans
Servlets
Java Server Pages JSP
XML
24
Modelo de la aplicación empresarial
Copyright 1994-2004 Sun Microsystems, Inc.
Servicios proporcionados por la
plataforma J2EE
Copyright 1994-2004 Sun Microsystems, Inc.
25
Sitios de desarrolladores
†
javaHispano
„
†
The Source for Developers
„
†
http://developers.sun.com
The Server Side
„
†
http://www.javahispano.org
http://www.theserverside.com
JavaWorld
„
http://www.javaworld.com
El proyecto Jakarta crea y mantiene soluciones
de código abierto para la plataforma Java, para
distribución al público sin costo alguno.
26
Jorge Eduardo Ibarra Esquer
[email protected]
[email protected]
27