Download Java - UAM

Document related concepts
no text concepts found
Transcript
El lenguaje de programación Java.
por Uriel R. Nava V.
Lenguajes de Programación
Prof. Dra. Ana Lilia Laureano
Noviembre, 2004
Maestría en Ciencias e Ingeniería de la Computación
CONTENIDO
 Orígenes.
 Un poco de historia
 Características de Java.
El lenguaje de programación Java.
La plataforma Java
 La Máquina Virtual
 Simple.
 La API de Java
 Orientado a Objetos.
 Compilando y ejecutando mi primer programa
 Distribuido.
 Interpretado.
 Una mirada a Java
 Robusto.
 Conclusiones.
 Seguro.
 De arquitectura neutral.
 Portable.
 De alto rendimiento.
 Multihilos.
 Dinámico.
Maestría en Ciencias e Ingeniería de la Computación
ORÍGENES
“En el principio existía y el caos y C++ …”
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.
Maestría en Ciencias e Ingeniería de la Computación
ORÍGENES (2)
La meta fue desarrollar una plataforma que operara en tiempo real,
portable y distribuida
C
Cedar/Mesa
¡¡¡ JAVA !!!
Maestría en Ciencias e Ingeniería de la Computación
UN POCO DE HISTORIA …
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.

Maestría en Ciencias e Ingeniería de la Computación

UN POCO DE HISTORIA … (2)
 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.
Maestría en Ciencias e Ingeniería de la Computación
CARACTERÍSTICAS DE JAVA
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”
Maestría en Ciencias e Ingeniería de la Computación
SIMPLE
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.
Maestría en Ciencias e Ingeniería de la Computación
ORIENTADO A OBJETOS
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.
Maestría en Ciencias e Ingeniería de la Computación
DISTRIBUIDO
• 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
Maestría en Ciencias e Ingeniería de la Computación
INTERPRETADO
• 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.
Maestría en Ciencias e Ingeniería de la Computación
ROBUSTO
• 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
Maestría en Ciencias e Ingeniería de la Computación
SEGURO
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
Maestría en Ciencias e Ingeniería de la Computación
DE ARQUITECTURA NEUTRAL
• 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
Maestría en Ciencias e Ingeniería de la Computación
PORTABLE
Más allá de la portabilidad de la arquitectura independiente, Java
implementa otros estándares de portabilidad, como el estándar
IEEE754.
Maestría en Ciencias e Ingeniería de la Computación
DE ALTO RENDIMIENTO
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
Maestría en Ciencias e Ingeniería de la Computación
MULTIHILOS
• 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
Maestría en Ciencias e Ingeniería de la Computación
DINÁMICO
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.
Maestría en Ciencias e Ingeniería de la Computación
LA PLATAFORMA JAVA
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
Maestría en Ciencias e Ingeniería de la Computación
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
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.
Maestría en Ciencias e Ingeniería de la Computación
UNA MIRADA A JAVA (2)
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
*/
Maestría en Ciencias e Ingeniería de la Computación
UNA MIRADA A JAVA (3)
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
Maestría en Ciencias e Ingeniería de la Computación
UNA MIRADA A JAVA (4)
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.
Maestría en Ciencias e Ingeniería de la Computación
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