Una breve descripción de Java



Documentos relacionados
Tema 1. Introducción a JAVA

Tema 1. Java: Conceptos generales

Introducción a Java LSUB. 15 de enero de 2015 GSYC

INTRODUCCIÓN A JAVA. Índice

Java en 2 horas. Rodrigo Santamaría

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Ejemplos de Servlet y JSP Web Application Development

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

19. Packages o paquetes

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

INF 473 Desarrollo de Aplicaciones en

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Java y Eclipse. Lenguajes y Entornos de Programación Libre

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

Uso de excepciones en Java

Seminario de Java. Contenido


Qué es Java? Introducción a Java. Lenguajes Orientados a Objetos. Qué es Java? Historia de Java. Objetivos de Java

El lenguaje de programación Java

Características generales del lenguaje Java. María a Consuelo Franky

Tema 2: La Tecnología Java

Programación en Java. Temario. David Contreras Bárcena

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California

Tema 1. Introducción a Java EE

Programación Orientada a Objetos. Java: Excepciones

Desarrollo de Aplicaciones Empresariales en Java INTRODUCCIÓN A JAVA

Programador en Plataforma Java y XML

Tema 1. Conceptos de Java para Estructuras de Datos: interfaces y programación genérica

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

Programación Interactiva Introducción a Java. Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

RMI [Remote Method Invocation]

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Curso de Java POO: Programación orientada a objetos

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

Programación Orientada a Objetos. Java: Excepciones

JAVA 1. Introducción

JAVA 8 Los fundamentos del lenguaje Java (con ejercicios prácticos corregidos)

Modelo de Objetos Distribuidos

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

JAVA SE STANDARD EDITION

DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA

Repaso de las características más importantes de la programación Java y su adaptación a Android

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

Programación Orientada a Objetos con Java

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

Tema 2. El lenguaje de programación Java (Parte 1)

Arquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos

1. Visión general de RMI

Paquetes de java. java.applet

Lenguaje Orientado por Objetos Simple, Poderoso y Fácil de aprender Robusto Interactivo Arquitectura neutral Interpretado y de alto desempeño

2. Estructura de un programa en Java

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

Universidad ORT - Arquitectura de Software. Requisitos

Introducción a la Programación en Java. Page 1

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Arquitectura y Lenguaje Java

Técnico Superior en Programación con Java SE Standard Edition

HTTP, CGI, Applets y Servlets

1. Aplicaciones del J2SE SDK1.4.2 de Sun.

Curso: Programación con JAVA SE Estándar Edition.

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN:

Programación orientada a objetos

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Introducción - por qué usarlas?(1)

Java Inicial (20 horas)

Java Básico. Introducción a Java. Copyright

Programación en Java. Programación en OO

Elementos léxicos del lenguaje de programación Java

Carlos A. Fernández Java. Una Introducción. U.T.M. 1

Tema 6: Arquitectura Web Multicapa

Práctica 4: Java Remote Method Invocation (RMI)

Tema 14: Excepciones

Java RMI. las RPC de Java. Parte I. Luis Fernando Llana Díaz. Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

JAVA PARA PRINCIPIANTES

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro

Programación Orientada a Objetos en Java

Temario Iniciación a Java J2SE para web

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador?

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

Requisitos. Universidad ORT Arquitectura de Software

Notas técnicas de JAVA Nro. 7 Tip Breve

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Aplicaciones Cliente - Servidor

Programación interactiva. Oscar Bedoya

Transcripción:

Una breve descripción de Java Sistemas Distribuidos ITInformática (UVA) César Llamas Bello 2003 ( Si busca un curso sobre Java, no es éste! Busque en otro sitio porque seguro que ya lo ha hecho algún otro.) Breve descripción de Java Qué es Java Presentación Applets Servlet Historia Biblioteca Core Ediciones JRE y JDK Java y OOP Interfaces Clases Herencia clases abstractas Modificadores Genericidad más Paquetes Excepciones Seguridad 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 2 1

Qué es Java? Un lenguaje de programación con elementos de C, C++ y otros lenguajes,... Unido a un gran conjunto de bibliotecas,... Con un soporte de ejecución estándar y una máquina virtual. Ventajas: simple, oo, distribuido, seguro, neutro, multienhebrado, dinámico. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 3 Qué es Java? Un programa Java es una biblioteca de clases (bytecode) organizada en paquetes jerárquicos. Programar es incrementar la biblioteca clase a clase Un programa Java es una «sopa» de objetos organizada en una jerarquía de herencia. Esta «sopa» es dinámica, y es... distribuida 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 4 2

Qué es Java? La máquina virtual java es una opción que garantiza la portabilidad. Existen tres sabores básicos de aplicaciones. Aplicación tipo standalone, sobre una máquina virtual (JVM). Aplicación tipo applet, lista para descargarse en su JVM tipo sandbox. Aplicación tipo servlet, que se ejecuta en un contenedor de servlets (p. ej. Tomcat) 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 5 Qué es un applet Java? Es una aplicacioncilla en Java con un API limitado (arenero), pues... No puede leer/escribir archivos No pueden hacer cualquier llamada al sistema,...... Que se descarga desde el sitio Web para ejecutarse en una máquina virtual en la plataforma del cliente: En el cliente web A parte (appletviewer) 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 6 3

Qué es un applet? /* applet sencillo, por M. Liu 1/8/02 */ import java.applet.applet; import java.awt.*; public class MiApplet extends Applet { public void paint (Graphics g) { setbackground(color.blue); font chulo = new Font( Arial, Font.BOLD, 40); g.setfont(chulo); g.setcolor(color.yellow); g.drawstring( Hola Mundo, 100, 100); // fin de paint // fin de la clase Los applets ofrecen un entorno de ejecución seguro. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 7 Qué es un servlet? Objetos que se ejecutan en una máquina remota, e interactúan mediante un protocolo petición-respuesta. Necesita el soporte de un contenedor de servlets. (De la versión adecuada) Hay dos sabores de servlets: Servlet (servlet vulgaris). JSP (Java Server Page). Una mezcla excitante de HTML y código Java incrustado. Al ser usada la página, el contenedor la compila y genera un servlet vulgaris. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 8 4

Qué es un servlet? /* servlet sencillo, por M. Liu 1/8/02 */ import java.io.*; import java.text.*; import java.util.*; import java.servlet.*; import java.io.http.*; Veis que pocas palabras clave aparecen? public class MiServlet extends HttpServlet { public void doget(httpservletrequest peticion, HttpServletResponse respuesta) throws ServletException, IOException { PrintWriter salida; String titulo = Resultado de MiServlet ; String algo ; respuesta.setcontenttype( text/html ); salida = respuesta.getwriter(); algo = <HTML><HEAD><TITLE>\n + titulo + </TITLE></HEAD><BODY>\n <H1> + titulo + </H1>\n + <P>Hola Mundo</P>\n + </BODY></HTML> ; salida.println(algo); salida.close(); // fin doget // fin de la clase 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 9 Qué es Java? Historia Comienza en 1991 en el Green Project Como un lenguaje para sistemas embebidos, Que substituyera a C++ Oak Aprovecha el tirón del Web sobre 1995 Para dar contenido dinámico... Y aparece HotJava, con sus applets. Hitos: JDK 1.0, Enero 1996 JDK 1.1, Febrero 1997 JDK 1.2 (Java 2), Diciembre 1998 J2SE 1.3 (Java 2 Standard Edition), Mayo 2000 JSE 1.4, Febrero 2002 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 10 5

Qué es Java? Biblioteca Core java.lang... Clases de muy bajo nivel java.util... Clases útiles (arrays, sets,...) java.text Texto y formateo java.math Calculo de precisión arbitrario java.io E/S de streams de bytes,... java.nio (idem) pero nueva java.net Red java.rmi... Invocación de métodos remotos org.omg... CORBA java.awt... Gráficos, ventanas,... javax.swing... (idem) pero mejor organizado java.beans... Para desarrollar componentes reusables Java.applet Soporte de applets Java.sql Soporte JDBC Java.security... Seguridad, certificados,... 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 11 Qué es Java? Otras bibliotecas El Java API 4 tiene 135 paquetes y 2738 clases/intefaces JavaBeans Activation Framework InfoBus intecambio entre JavaBeans Java Communications Serie y paralelo... Java Naming and Directory Interface: LDAP JavaMail JavaHelp JavaServlet Java.Cryptography javax.... Menos (lo ya comentado de Swing) Java 3D Gráficos 3D... 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 12 6

Qué es Java? Código fuente Application Binary Interface compilador Clase.java bytecode javac Biblioteca.jar... Clase2.class Clase.class Clase-i.class... También se puede usar un compilador JIT de bytecode a CM java Intérprete Máquina Virtual Java (JVM) Carga + programa en proceso 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 13 Qué es Java? Ediciones Plataforma Java 2, Standard Edition (J2SE) Java ordinario Plataforma Java2, Enterprise Edition (J2EE) Para aplicaciones de servidor de categoría empresarial. Enterprise JavaBeans (Arquitectura de componentes), JavaServer Pages, JMS Plataforma Java2, Micro Edition (J2ME) Para sistemas embebidos (empotrados) y electrónica de consumo Soportan parte del API, eincluyen API para desarrollo a bajo nivel. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 14 7

Qué es Java? JRE y JDK Java se distribuye en 3 formatos: JRE (Java Runtime Environment) solo para ejecutar programas Java (tiene las clases Core). JDK (Java Development Kit) contiene además compiladores necesarios. Plug-in para instalar en los clientes web. Además es interesantes bajarse la documentación en formato JavaDoc. La dirección es http://java.sun.com También IBM tiene su sistema http://oss.software.ibm.com/developerworks/opensource/jikes/ 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 15 Java y OOP Interfaces Interfaces Java permite diseñar interfaces Para definir interfaces interface List { int size(); Object get(int index); void add(object element); void set(int index, Object element); El tipo más general Sintaxis tipo C++ 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 16 8

Java y OOP Interfaces Las interfaces permiten herencia, y se pueden extender Son tipos de datos Una clase puede implementar muchas interfaces. List Printable LinkedList SkipList PrintedLinkedList 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 17 Java y OOP Clases Clases Con sus campos y métodos class ArrayList implements List { Object[] elements; int length; int size(){ return length; Object get(final int index) { return elements[index]; void add(final Object element); {... void set(final int index, final Object element) {... ArrayList() {... ArrayList(int capacity) {... 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 18 9

Java y OOP Permite cualificar los campos, clases y métodos: public, protected, [nada], private Los objetos se crean instanciando (new) Que devuelve una referencia (no un puntero) Las llamadas son al estilo: lista.add(...) Las variables de tipo de clase son referencias a objetos == compara punteros 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 19 Java y OOP Cosas sobre clases Tiene polimorfismo Tiene la referencia this Los constructores se denominan igual que la clase (son void) No hay destructores, sólo finalize() el espacio se toma del montón y se dispone del espacio de un objeto cuando desaparecen sus referencias. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 20 10

Java y OOP Herencia de implementación Java permite herencia de implementación, Extendiendo una clase Permite la re-implementación aunque puede prohibirse Y la adición de métodos y campos public class GraphicCircle extends Circle { private Color outline, fill; GraphicCircle(...) { super(...); this.outline=...;... 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 21 Java y OOP Clases abstractas Se permiten clases abstractas abstract Existen algunos métodos implementados, y Otros métodos abstractos no. Pueden tener datos No pueden instanciarse directamente, Pero pueden extenderse. Java no admite herencia múltiple. Solo las interfaces tienen herencia múltiple. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 22 11

Java y OOP Resumen de Modificadores Modificadores de campos: (visibilidad) public, protected, private (estatus) final, static, transient, volatile Modificadores de Métodos: (visibilidad) public, protected, private (estatus) final, static, abstract (concurrencia) synchronized... strictfp (para RT) 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 23 Java y OOP Resumen de Modificadores Modificadores de clases: (visibilidad) public (solo para clases internas) protected, private (status) final, abstract, static (...) strictfp. Modificadores class nombre [extends nombre] [implements i1 [, i2 [,...]]] cuerpo 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 24 12

Genericidad y demás Genericidad (En Java 1.4): No es lo mismo que plantillas en C++ Elimina la necesidad de moldeados (cast). Ejemplo: Utilización de java.util.list con Strings. A la antigua: List ids = new ArrayList();... String id = (String ids.get(index); Con genéricos: List<String> ids = new ArrayList<String>();... String id = ids.get(index); 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 25 Genericidad y demás Bucle for mejorado La clase Iterator permite recorrer un Collection; ahora puede ser substituido por la extensión de for. Antes: ArrayList<Integer> lista = new ArrayList<Integer>(); for (Iterator i = lista.iterator(); i.hasnext();) { Integer valor = (Integer) i.next(); Ahora: ArrayList<Integer> lista = new ArrayList<Integer>(); for (Integer valor : list) { 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 26 13

Paquetes Los paquetes definen espacios de nombres para jerarquizar evitar colisiones Los nombres están totalmente cualificados cara al exterior del paquete nombre[.nombre[.... ] ] Se declara al principio del archivo: package micodigo.graficos; 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 27 Paquetes Al importar un paquete se entra en su espacio de nombres: import micodigo.*; java.lang.* y el paquete actual están importados automáticamente. Cuando se programa debe reproducirse la estructura del paquete en los directorios. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 28 14

Excepciones Una excepción es un objeto de una subclase de java.lang.throwable. Sirve para señalizar errores mediante el lanzamiento (throw) de excepciones (entre otras cosas). Hay que declararlas public FileInputStream(String nombre) throws FileNotFoundException { this.fd = system_open(name); // codigo nativo if (fd < 0) { throw new FileNotFoundException( No encuentro + nombre) ; else { //.. Hacer lo que sea menester 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 29 Excepciones Las excepciones hay que atraparlas para que sirva de algo. Si no se atrapan se elevan (raise) al nivel superior. Tras atraparlas, podemos recuperar el error, o lanzarlas hacia arriba bajo otra forma más abstracta try { FileInputStream in = new File... ( archivo ) ; in.read(buf, offset, size); // código a tutiplen catch (final FileNotFoundException ex) { ex.printstacktrace(); // y más cosas catch (final IOException ex) {... finally { if (in!= null) in.close() Siempre se ejecutará Bloque a comprobar Bloque a ejecutar 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 30 15

Excepciones Object Throwable Error Exception RuntimeException Exception normalmente se lanza con throw. Son excepciones comprobadas siempre hay que atraparlas o elevarlas explícitamente RuntimeException y Error Son excepciones no comprobadas (unchecked) No hay porqué atraparlas 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 31 Seguridad Java implementa un esquema de seguridad basado en el control de acceso a los recursos (objetos, clases, archivos, conexiones) El control de seguridad corre a cargo de una clase gestor de seguridad (security manager) El control de acceso a los recursos se fija mediante archivos de política (policy) Los applets tienen un gestor de seguridad por defecto y una política por defecto. 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 32 16

Enlaces útiles: El tutorial Java de Sun http://java.sun.com/docs/book.tutorial Tutorial sobre fundamentos del lenguaje Java: http://developer.java.sun.com/developer/onlinetraining/pr ograming/basicjava1/index.html http://developer.java.sun.com/onlinetraining/programmin g/basicjava2/index.html La especificación de Java http://java.sin.com/docs/books/jls/html/index.html 22/02/2005 Sistemas Distribuidos - Qué es Java? (c) César Llamas 2003 (UVA) 33 17