Programación de Sistemas
Lic. José Angel Quintanilla Rosales
Un programa bien escrito es su propio cielo; un programa
mal ...
INTRODUCCIÓN A JAVA
∗ ¿Qué es Java?
∗ La plataforma Java 2
∗ La Máquina Virtual de Java
∗ Características principales
∗ ¿Qué ventajas tengo co...
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...
La plataforma Java 2
Características Principales
∗ Sencillo
∗ Orientado a objetos
∗ Distribuido
∗ Interpretado
∗ Robusto
∗ Seguro
∗ Arquitectur...
∗ Elimina algunas de las características de C y C++:
∗ No aritmética de punteros.
∗ No existen referencias.
∗ No existe ty...
∗ Java trabaja con sus datos como objetos y con
interfaces a esos objetos.
∗ Implementa:
∗ Encapsulación. - Interfaces.
∗ ...
∗ Concebido para trabajar en un entorno conectado en
red.
∗ En sí no es distribuido, proporciona librerías y
herramientas ...
Características: Interpretado
∗ Compilador tradicional
∗ Traslada sentencias alto-
nivel a múltiples
instrucciones.
∗ Crea...
∗ No se interrumpe fácilmente.
∗ Evita sobreescribir o corromper memoria mediante
punteros.
∗ Manejo de excepciones.
∗ Ver...
∗ Aplicaciones seguras ya que no acceden a
zonas delicadas de memoria o de sistema
∗ No existen punteros, no acceso a zona...
∗ Java compila el código a un fichero objeto de
formato independiente de la arquitectura de
la máquina en que se ejecutará...
∗ Código fuente se compila
a un código de bytes
independientemente
de la máquina.
∗ Los ByteCodes se
ejecutan en una
máqui...
∗ Elementos que forman parte de arquitectura de Java
sobre una plataforma genérica.
∗ Dependiente del sistema:
∗ JVM.
∗ Li...
∗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 al
código máquina de la p...
∗ Se introdujo un nuevo JIT: HotSpot.
∗ Incluye compilador dinámico
y una máquina virtual para
Interpretar bytecodes.
∗ Me...
∗ Ejecución de varias tareas a la vez. Permite
muchas actividades simultáneas en un
programa.
∗ Posee una serie de clases ...
∗ No conecta todos los módulos que
comprenden una aplicación hasta el mismo
tiempo de ejecución.
∗ Las librerías nuevas o ...
∗ Comenzar rápidamente.
∗ Escribir menos código, 4 veces menos que en
C++.
∗ Escribir mejor código.
∗ Desarrollar programa...
∗ 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 arc...
∗ Runtime
∗ En programación, es común escribir una serie de
sentencias u ordenes de manera que son entendidas por el
progr...
Upcoming SlideShare
Loading in …5
×

Clase ii

426 views
358 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
426
On SlideShare
0
From Embeds
0
Number of Embeds
207
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clase ii

  1. 1. 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]
  2. 2. INTRODUCCIÓN A JAVA
  3. 3. ∗ ¿Qué es Java? ∗ La plataforma Java 2 ∗ La Máquina Virtual de Java ∗ Características principales ∗ ¿Qué ventajas tengo como desarrollador? ∗ Bibliografía Índice
  4. 4. La tecnología Java es un lenguaje de programación y una plataforma. ¿Qué es Java?
  5. 5. ∗ 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
  6. 6. La plataforma Java 2
  7. 7. Características Principales ∗ Sencillo ∗ Orientado a objetos ∗ Distribuido ∗ Interpretado ∗ Robusto ∗ Seguro ∗ Arquitectura neutra ∗ Portable ∗ Altas prestaciones ∗ Multithread (multihilo) ∗ Dinámico
  8. 8. ∗ 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
  9. 9. ∗ 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
  10. 10. ∗ 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
  11. 11. 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))
  12. 12. ∗ 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
  13. 13. ∗ 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
  14. 14. ∗ 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
  15. 15. ∗ 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ón Tiempo de ejecución
  16. 16. ∗ 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 contacto directo con el hardware. Características: Arquitectura neutra
  17. 17. ∗Más allá de la portabilidad básica por ser de arquitectura independiente. Características: Portable
  18. 18. ∗ Compiladores JIT (Just in time): Compilan en el momento de ejecución. ∗ Traslada los bytecodes al código máquina de la plataforma según los va leyendo, realizando cierto grado de optimización. ∗ JIT no pierde tiempo en optimizar código que no se ejecutará. Características: Altas prestaciones
  19. 19. ∗ Se introdujo un nuevo JIT: HotSpot. ∗ Incluye compilador dinámico y una máquina virtual para Interpretar bytecodes. ∗ Mejor soporte para ordenadores con varios procesadores, mayor escalabilidad. Características: Altas prestaciones
  20. 20. ∗ 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
  21. 21. ∗ 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
  22. 22. ∗ 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?
  23. 23. ∗ Libro de texto: “Thinking in Java”. ∗ Java Hispano: www.javahispano.org. ∗ Tutoriales de internet. Bibliografía
  24. 24. ∗ 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
  25. 25. ∗ 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

×