clase ii

Post on 05-Jul-2015

330 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programación de Sistemas

Lic. José Angel Quintanilla Rosales

Un programa bien escrito es su propio cielo; un programa mal escrito es su propio infierno. [Geoffrey James, El Tao

de la Programación]

INTRODUCCIÓN A JAVA

∗ ¿Qué es Java?∗ La plataforma Java 2∗ La Máquina Virtual de Java∗ Características principales∗ ¿Qué ventajas tengo como desarrollador?∗ Bibliografía

Índice

La tecnología Java es un lenguaje de programación

y una plataforma.

¿Qué es Java?

∗ Una plataforma software que se ejecuta sobre otra plataforma hardware/software.

∗ La Máquina Virtual Java La interfaz de Programación(JVM) de Aplicaciones (API)

Intérprete de Java Conjunto de clases ya desarrolladas

La plataforma Java 2

La plataforma Java 2

Características Principales

∗ Sencillo∗ Orientado a objetos∗ Distribuido∗ Interpretado∗ Robusto∗ Seguro

∗ Arquitectura neutra∗ Portable∗ Altas prestaciones∗ Multithread (multihilo)∗ Dinámico

∗ Elimina algunas de las características de C y C++:∗ No aritmética de punteros.∗ No existen referencias.∗ No existe typedef ni #define.∗ No sobrecarga operadores.∗ No herencia múltiple.∗ Posee clase String.∗ No necesidad de asignar y liberar memoria (Garbage

Collector).

Características: Sencillo

∗ Java trabaja con sus datos como objetos y con interfaces a esos objetos.

∗ Implementa:∗ Encapsulación. - Interfaces.∗ Herencia simple. - Paquetes.∗ Abstracción.∗ Reutilización.∗ Polimorfismo.

Características: Orientado a objetos

∗ Concebido para trabajar en un entorno conectado en red.

∗ En sí no es distribuido, proporciona librerías y herramientas para que los programas puedan ser distribuidos, que los programas corran en varias máquinas interactuando.

Características: Distribuido

Características: Interpretado∗ Compilador tradicional

∗ Traslada sentencias alto-nivel a múltiples instrucciones.

∗ Creación de librerías como resultado de compilaciones previas.

∗ Juntando, se crea programa ejecutable.

∗ Intérprete de ByteCodes

∗ Compilador Java

Traduce código fuente a código intermedio.

∗ Interprete de Java

Virtual Machine(JVM)(ByteCodes interpretados

(ejecutados))

∗ No se interrumpe fácilmente.∗ Evita sobreescribir o corromper memoria mediante

punteros.∗ Manejo de excepciones.∗ Verificación de ByteCodes (por ejemplo no acceso

ilegal de memoria).

Características: Robusto

∗ Aplicaciones seguras ya que no acceden a zonas delicadas de memoria o de sistema

∗ No existen punteros, no acceso a zonas delicadas de memoria.

∗ Una applet no puede acceder al sistema, a los archivos de la persona que lo está viendo.

Características: Seguro

∗ Java compila el código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.

∗ Cualquier plataforma donde exista una JVM se puede ejecutar el código objeto independientemente de la máquina en el que ha sido generado.

Características: Arquitectura neutra

∗ Código fuente se compila a un código de bytes independientemente de la máquina.

∗ Los ByteCodes se ejecutan en una máquina hipotética que se implementa por un sistema run-time, que es dependiente de la máquina.

Características: Arquitectura neutra

Tiempo de compilaciónTiempo de ejecución

∗ Elementos que forman parte de arquitectura de Java sobre una plataforma genérica.

∗ Dependiente del sistema:∗ JVM.∗ Librerías fundamentales.∗ APIs de Java que entren en contactodirecto con el hardware.

Características: Arquitectura neutra

∗Más allá de la portabilidad básica por ser de arquitectura

independiente.

Características: Portable

∗ Compiladores JIT (Just in time): Compilan en el momento de ejecución.∗ Traslada los bytecodes alcódigo máquina de la plataformasegún los va leyendo, realizandocierto grado de optimización.∗ JIT no pierde tiempo en optimizar código que no se ejecutará.

Características: Altas prestaciones

∗ Se introdujo un nuevo JIT: HotSpot.

∗ Incluye compilador dinámicoy una máquina virtual paraInterpretar bytecodes.∗ Mejor soporte para ordenadorescon varios procesadores,mayor escalabilidad.

Características: Altas prestaciones

∗ Ejecución de varias tareas a la vez. Permite muchas actividades simultáneas en un programa.

∗ Posee una serie de clases que facilitan su utilización.

∗ Mejor rendimiento interactivo y mejor comportamiento en tiempo real.

Características: Multithread

∗ No conecta todos los módulos que comprenden una aplicación hasta el mismo tiempo de ejecución.

∗ Las librerías nuevas o actualizadas no paralizan la ejecución de las aplicaciones siempre que mantengan la API anterior.

Características: Dinámico

∗ Comenzar rápidamente.∗ Escribir menos código, 4 veces menos que en

C++.∗ Escribir mejor código.∗ Desarrollar programas más rápidamente.∗ Eliminar dependencias de la plataforma.∗ Escribir una vez, ejecutar en cualquier parte.

¿Qué ventajas tengo como desarrollador?

∗ Libro de texto: “Thinking in Java”.∗ Java Hispano: www.javahispano.org.∗ Tutoriales de internet.

Bibliografía

∗ Bytecode∗ El bytecode es un código intermedio más abstracto que el código

máquina. Habitualmente es tratado como un archivo binario que contiene un programa ejecutable similar a un módulo objeto, que es un archivo binario producido por el compilador cuyo contenido es el código objeto o código máquina .

∗ Applet∗ Un applet es un componente de una aplicación que se ejecuta en

el contexto de otro programa, por ejemplo en un navegador web. El applet debe ejecutarse en un contenedor, que le proporciona un programa anfitrión, mediante unplugin,1 o en aplicaciones como teléfonos móviles que soportan el modelo de programación por "applets".

Conceptos

∗ Runtime∗ En programación, es común escribir una serie de

sentencias u ordenes de manera que son entendidas por el programador. Estas "oraciones" no son comprendidas por el computador (procesador) que solo comprende 1 y 0, por lo cual debe traducirse el lenguaje humano al lenguaje de máquina.El runtime es un conjunto de programas que realizan esta tarea en ambos sentidos, dando entonces el resultado al operador. Un navegador tiene esta tarea.Para evitar esta pérdida de tiempo de proceso, a veces es posible compilar, o sea realizar esta tarea una vez y crear una aplicación fija que no requiere runtime sino solo ejecución.

Conceptos

top related