Clase ii

25
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]

Transcript of Clase ii

Page 1: Clase ii

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]

Page 2: Clase ii

INTRODUCCIÓN A JAVA

Page 3: Clase ii

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

Índice

Page 4: Clase ii

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

y una plataforma.

¿Qué es Java?

Page 5: Clase ii

∗ 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

Page 6: Clase ii

La plataforma Java 2

Page 7: Clase ii

Características Principales

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

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

Page 8: Clase ii

∗ 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

Page 9: Clase ii

∗ 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

Page 10: Clase ii

∗ 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

Page 11: Clase ii

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

Page 12: Clase ii

∗ 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

Page 13: Clase ii

∗ 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

Page 14: Clase ii

∗ 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

Page 15: Clase ii

∗ 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

Page 16: Clase ii

∗ 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

Page 17: Clase ii

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

independiente.

Características: Portable

Page 18: Clase ii

∗ 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

Page 19: Clase ii

∗ 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

Page 20: Clase ii

∗ 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

Page 21: Clase ii

∗ 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

Page 22: Clase ii

∗ 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?

Page 23: Clase ii

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

Bibliografía

Page 24: Clase ii

∗ 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

Page 25: Clase ii

∗ 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