El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes...

Post on 23-Jan-2016

222 views 0 download

Transcript of El lenguaje de programación Java. Maestría en Ciencias e Ingeniería de la Computación Lenguajes...

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.

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.

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++ …”

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 !!!

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.

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.

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”

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.

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.

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

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.

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

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

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

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.

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

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

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.

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

LA PLATAFORMA JAVA (2)

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

COMPILANDO Y EJECUTANDO …

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

COMPILANDO Y EJECUTANDO …(2)

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

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.

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

*/

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

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.

UNA MIRADA A JAVA (5)

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

UNA MIRADA A JAVA (6)

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