el lenguaje de programación java. maestría en ciencias e ingeniería de la computación lenguajes...

28
El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre, 2004 por Uriel R. Nava V.

Upload: teofila-villescas

Post on 23-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

El lenguaje de programación Java.

Maestría en Ciencias e Ingeniería de la Computación

Lenguajes de Programación

Prof. Dra. Ana Lilia Laureano

Noviembre, 2004

por Uriel R. Nava V.

Page 2: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

CONTENIDO

Maestría en Ciencias e Ingeniería de la Computación

Un poco de historia

Compilando y ejecutando mi primer programa

Características de Java.

El lenguaje de programación Java.

Una mirada a Java

La plataforma Java

Orígenes.

Conclusiones.

La Máquina Virtual

La API de Java

Simple.

Orientado a Objetos.

Distribuido.

Interpretado.

Robusto.

Seguro.

De arquitectura neutral.

Portable.

De alto rendimiento.

Multihilos.

Dinámico.

Page 3: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

ORÍGENES

Maestría en Ciencias e Ingeniería de la Computación

El lenguaje de programación Java fue diseña para hacer frente a los retos de las aplicaciones desarrolladas en ambientes de red; dentro de estos retos destacan la seguridad en las aplicaciones, que éstas consuman el mínimo de recursos del sistema y puedan ejecutarse en cualquier hardware y plataforma de software.

Java fue parte de un proyecto para desarrollar software avanzado para dispositivos de red y sistemas embebidos.

“En el principio existía y el caos y C++ …”

Page 4: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

ORÍGENES (2)

Maestría en Ciencias e Ingeniería de la Computación

La meta fue desarrollar una plataforma que operara en tiempo real, portable y distribuida

C++

Eiffel

SmallTalkC

Cedar/Mesa

¡¡¡ JAVA !!!

Page 5: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UN POCO DE HISTORIA …

Maestría en Ciencias e Ingeniería de la Computación

El nombre Java, se refiere al café y no a la isla de Java. James Gosling quería darle a su lenguaje un nombre que transmitiera la idea de energía, como la cafeína.

Page 6: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UN POCO DE HISTORIA … (2)

Maestría en Ciencias e Ingeniería de la Computación

Diciembre 1990. Sun Microsystems contrata a James Gosling para participar en “Green Project”.

Abril 1991. Es liberado el compilador Oak.

Enero 1992. Se desarrolla el prototipo “Star seven” y VOD (Video on Demand).

Diciembre 1992. “Green Project” se establece como una subsidiaria de Sun Microsystems.

Finales de 1994. Se pierde un proyecto con Time – Warner.

Octubre 1995. Es liberado Hot Java.

Noviembre 1996. Se forma la compañía Java Soft.

Page 7: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

CARACTERÍSTICAS DE JAVA

Maestría en Ciencias e Ingeniería de la Computación

Java es un lenguaje de programación con el que los programadores pueden crear aplicaciones semejantes a las desarrolladas en C++.

“Java es un lenguaje de programación de alto nivel, simple orientado a objetos, distribuido, interpretado, sólido, seguro, de arquitectura neutral, portable, de alto desempeño, multihilos y dinámico”

“Sorry to steal the show”

Page 8: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

SIMPLE

Maestría en Ciencias e Ingeniería de la Computación

Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de estos.

Elimina muchas de las características de otros lenguajes como C++, para mantener reducida la especificación del lenguaje y añade propiedades útiles como el recolector de basura.

• Aritmética de apuntadores.

• Estructuras (struct).

• Macros (#define).

• Necesidad de liberar memoria free.

• No ofrece herencia múltiple.

Page 9: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

ORIENTADO A OBJETOS

Maestría en Ciencias e Ingeniería de la Computación

Java implementa la tecnología de C++ y soporta las tres características del paradigma orientado a objetos.

• Encapsulamiento: Implementa información oculta.

• Polimorfismo: El mismo mensaje se envía a diferentes objetos, resultando en comportamientos que dependen de la naturaleza del objeto que recibió el mensaje.

• Herencia: Puede definir nuevas clases y comportamientos (métodos) basados en clases existentes.

Page 10: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

DISTRIBUIDO

Maestría en Ciencias e Ingeniería de la Computación

• Presenta extensas capacidades de interconexión TCP/IP.

• Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp.

• Por si sólo no es distribuido, pero proporciona herramientas para que nuestros programas puedan serlo

Page 11: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

INTERPRETADO

Maestría en Ciencias e Ingeniería de la Computación

• El intérprete de Java (Sistema runtime), puede ejecutar directamente el código.

• Enlazar un programa requiere menos recursos que compilarlo, por lo que los desarrolladores pasan más tiempo desarrollando y menos compilando.

• Java es “leenntooo”, pero con la introducción de compiladores JIT el panorama está cambiando.

• La JVM es una definición de una máquina abstracta, por lo que un intérprete distinto debe estar disponible para cada arquitectura de hardware.

Page 12: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

ROBUSTO

Maestría en Ciencias e Ingeniería de la Computación

• Java realiza verificaciones en busca de problemas, tanto en tiempo de compilación, como de ejecución.

• La comprobación de tipos ayuda a detectar errores.

• Obliga a la declaración explícita de los métodos.

• Maneja la memoria

• Realiza verificación del bytecode

Page 13: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

SEGURO

Maestría en Ciencias e Ingeniería de la Computación

La seguridad tiene dos facetas:

• Se eliminan características como los apuntadores y el casting implícito para prevenir el acceso ilegal ala memoria

• El código Java pasa por muchas verificaciones antes de ser ejecutado en una máquina mediante el classloader

Page 14: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

DE ARQUITECTURA NEUTRAL

Maestría en Ciencias e Ingeniería de la Computación

• El compilador Java compila su código a un archivo objeto de formato independiente a la arquitectura de la máquina en que se ejecutará

• Cualquier máquina que tenga el sistema runtime, podrá ejecutar ese código

Page 15: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

PORTABLE

Maestría en Ciencias e Ingeniería de la Computación

Más allá de la portabilidad de la arquitectura independiente, Java implementa otros estándares de portabilidad, como el estándar IEEE754.

Page 16: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

DE ALTO RENDIMIENTO

Maestría en Ciencias e Ingeniería de la Computación

Como el código Java (bytecode) es interpretado, el proceso de programación a veces no es tan rápido como la compilación y ejecución directas en una plataforma de hardware en particular.

Sin embargo, la compilación incluye algunas opciones para traducir el bytecode a código de máquina para la plataforma específica de hardware.

Java crea objetos en 8.4 s

Page 17: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

MULTIHILOS

Maestría en Ciencias e Ingeniería de la Computación

• Al ser por naturaleza multihilos, permite hacer tareas simultaneas en un programa.

• Las tareas o procesos ligeros son pequeños procesos o piezas independientes de un gran proceso.

• El beneficio se traduce en un mejor rendimiento interactivo y mejor comportamiento en tiempo real

Page 18: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

DINÁMICO

Maestría en Ciencias e Ingeniería de la Computación

Java se beneficia todo lo posible de la tecnología orientada a objetos y no intenta conectar todos los módulos que comprende una aplicación hasta el mismo tiempo de ejecución, las librerías nuevas o actualizadas no paralizan la ejecución de las aplicaciones actuales siempre que mantengan la API anterior.

Page 19: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

LA PLATAFORMA JAVA

Maestría en Ciencias e Ingeniería de la Computación

Una plataforma es el hardware o ambiente de software donde se ejecutan programas.

• Windows 2000.

• Linux.

• Solaris.

• MacOS.

Java presenta un conjunto de herramientas de software que permite crear e implantar contenido ejecutable utilizando el lenguaje de programación Java

• La Maquina Virtual Java (Java Virtual Machine, JVM).

• La API de Java

Page 20: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

LA PLATAFORMA JAVA (2)

Maestría en Ciencias e Ingeniería de la Computación

Page 21: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

COMPILANDO Y EJECUTANDO …

Maestría en Ciencias e Ingeniería de la Computación

Page 22: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

COMPILANDO Y EJECUTANDO …(2)

Maestría en Ciencias e Ingeniería de la Computación

Page 23: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA

Maestría en Ciencias e Ingeniería de la Computación

Sintaxis de Java.

La sintaxis de un lenguaje define cómo se usarán las palabras claves, los operadores y las variables para construir y evaluar expresiones. La sintaxis de Java especifica como se escribirán los siguientes elementos:

• Comentarios.

• Identificadores.

• Palabras clave.

• Literales.

• Expresiones y operadores.

• Variables y tipos de datos.

• Bloques y sentencias.

Page 24: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA (2)

Maestría en Ciencias e Ingeniería de la Computación

Comentarios:

Java ofrece tres tipos de comentarios: dos para comentarios regulares en el código fuente y uno para la documentación especial del sistema javadoc.

Comentarios de varias líneas. /*

Este es un ejemplo de un comentario de varias

líneas.

*/

Comentarios de una sola línea.

// Este es un comentario de una sola línea

Comentarios para documentación. /**

Este tipo de comentarios los utiliza la

herramienta javadoc

*/

Page 25: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA (3)

Maestría en Ciencias e Ingeniería de la Computación

Identificadores

Un identificador es una secuencia de caracteres comenzando por una letra y conteniendo letras y números. Los identificadores no se limitan a los caracteres ASCII, si el editor de texto lo soporta, se pueden escribir identificadores utilizando caracteres Unicode.

Las letras Java incluyen los caracteres ASCII A-Z y a-z. Los dígitos Java incluyen los dígitos ASCII 0-9. Para propósitos de construir identificadores, los caracteres ASCII $ y _ son también considerados letras Java.

Estos son algunos ejemplos de identificadores válidos:

_varx $var1 MAX_NUM var2

Page 26: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA (4)

Maestría en Ciencias e Ingeniería de la Computación

Palabras clave

La siguiente tabla muestra las palabras claves de Java, éstas son reservadas y no pueden ser utilizadas como identificadores.

abstract default if private this boolean do implements protected throw break double import public throws byte else instanceof return transient case extends int short try catch fina linterface static void char finally long strictfp volatile class float native super while for new switch continue goto package synchronized

true, false, and null no son palabras claves pero son palabras reservadas, así que tampoco pueden ser utilizadas como identificadores.

Page 27: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA (5)

Maestría en Ciencias e Ingeniería de la Computación

Page 28: El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes de Programación Prof. Dra. Ana Lilia Laureano Noviembre,

UNA MIRADA A JAVA (6)

Maestría en Ciencias e Ingeniería de la Computación