SlideShare una empresa de Scribd logo
1 de 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]
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ón
Tiempo 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 contacto
directo 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 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
∗ 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
∗ 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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Instituto Cristiano Encuentro
Instituto Cristiano EncuentroInstituto Cristiano Encuentro
Instituto Cristiano Encuentro
 
Módulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología JavaMódulo 01 Introducción a la Tecnología Java
Módulo 01 Introducción a la Tecnología Java
 
Java
JavaJava
Java
 
Mapa conceptual de Java
Mapa conceptual de JavaMapa conceptual de Java
Mapa conceptual de Java
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Java janner
Java   jannerJava   janner
Java janner
 
Lenguaje de programación Java
Lenguaje de programación Java Lenguaje de programación Java
Lenguaje de programación Java
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Clase2
Clase2Clase2
Clase2
 
JAVA
JAVAJAVA
JAVA
 
Pruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAPPruebas Automatizadas y pruebas SOAP
Pruebas Automatizadas y pruebas SOAP
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Java ventajas y caracteristicas
Java ventajas y caracteristicasJava ventajas y caracteristicas
Java ventajas y caracteristicas
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Node para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigoNode para Javeros: Conoce a tu enemigo
Node para Javeros: Conoce a tu enemigo
 
Java swing
Java swingJava swing
Java swing
 
Preguntas test
Preguntas testPreguntas test
Preguntas test
 
Java
Java Java
Java
 

Destacado

Destacado (7)

JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?JRuby ¿Lo mejor de dos mundos?
JRuby ¿Lo mejor de dos mundos?
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
Introducción a la Tecnología Java
Introducción a la Tecnología JavaIntroducción a la Tecnología Java
Introducción a la Tecnología Java
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Introduccin a-la-tecnologa-java100
Introduccin a-la-tecnologa-java100Introduccin a-la-tecnologa-java100
Introduccin a-la-tecnologa-java100
 
Lenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual MachineLenguajes Dinámicos en la Java Virtual Machine
Lenguajes Dinámicos en la Java Virtual Machine
 

Similar a Clase ii (20)

Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
C1 intro java
C1 intro javaC1 intro java
C1 intro java
 
Java de erlin
Java de erlinJava de erlin
Java de erlin
 
Introduccion Java.ppt
Introduccion Java.pptIntroduccion Java.ppt
Introduccion Java.ppt
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
historia
historiahistoria
historia
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
Hack x crack_java
Hack x crack_javaHack x crack_java
Hack x crack_java
 
10 lenguajes de programacion
10 lenguajes de programacion10 lenguajes de programacion
10 lenguajes de programacion
 
Java basico
Java basicoJava basico
Java basico
 
Java basico
Java basicoJava basico
Java basico
 
Introduccion A Java
Introduccion A JavaIntroduccion A Java
Introduccion A Java
 
1.introduccion java
1.introduccion java1.introduccion java
1.introduccion java
 
Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Antecedentes java
Antecedentes java Antecedentes java
Antecedentes java
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 

Más de José Angel Quintanilla Rosales (20)

Presentación de Moviles
Presentación de MovilesPresentación de Moviles
Presentación de Moviles
 
Clase iv
Clase ivClase iv
Clase iv
 
Clase III
Clase IIIClase III
Clase III
 
Clase ii
Clase iiClase ii
Clase ii
 
Clase I
Clase IClase I
Clase I
 
Clase xiv
Clase xivClase xiv
Clase xiv
 
Clase xiii
Clase xiiiClase xiii
Clase xiii
 
Clase xii
Clase xiiClase xii
Clase xii
 
Clase xi
Clase xiClase xi
Clase xi
 
Clase x
Clase xClase x
Clase x
 
Clase IX
Clase IXClase IX
Clase IX
 
Clase viii
Clase viiiClase viii
Clase viii
 
Clase vii
Clase viiClase vii
Clase vii
 
Clase vi
Clase viClase vi
Clase vi
 
Clase v
Clase vClase v
Clase v
 
Clase iv
Clase ivClase iv
Clase iv
 
Clase 3
Clase 3Clase 3
Clase 3
 
Programación de sistemas
Programación de sistemasProgramación de sistemas
Programación de sistemas
 
Excel iii
Excel iiiExcel iii
Excel iii
 
Excel ii
Excel iiExcel ii
Excel ii
 

Clase ii

  • 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]
  • 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. La tecnología Java es un lenguaje de programación y una plataforma. ¿Qué es Java?
  • 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
  • 7. Características Principales ∗ Sencillo ∗ Orientado a objetos ∗ Distribuido ∗ Interpretado ∗ Robusto ∗ Seguro ∗ Arquitectura neutra ∗ Portable ∗ Altas prestaciones ∗ Multithread (multihilo) ∗ Dinámico
  • 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. ∗ 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. ∗ 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. 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. ∗ 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. ∗ 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. ∗ 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. ∗ 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. ∗ 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. ∗Más allá de la portabilidad básica por ser de arquitectura independiente. Características: Portable
  • 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. ∗ 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. ∗ 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. ∗ 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. ∗ 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. ∗ Libro de texto: “Thinking in Java”. ∗ Java Hispano: www.javahispano.org. ∗ Tutoriales de internet. Bibliografía
  • 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. ∗ 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