SlideShare una empresa de Scribd logo
1 de 46
UNIVERSIDAD DE ORIENTE
  FACULTAD DE CIENCIAS ECONOMICAS
      SECCION DE INFORMATICA.



         Asignatura:
  Programación de Sistemas.
                       Ciclo: 02/2012
Profesor: Lic. MsD. Celestino Hernández
        Arquitectura y Lenguaje Java
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   1
Reflexión.

 Si tú llamas experiencias a tus
 dificultades y recuerdas que cada
 experiencia te ayuda a madurar, vas a
 crecer vigoroso y feliz, no importa
 cuán      adversas     parezcan   las
 circunstancias. (Henry Miller)


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   2
Objetivos:
 Conocer una breve historia del desarrollo
 y creación del lenguaje Java.
 Conocer     las    características   más
 importantes de java como lenguaje de
 propósito general y como lenguaje de
 programación para internet.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   3
Historia.
 El lenguaje de programación Java así como su
 arquitectura se diseñaron para resolver
 problemas que se presentan en la programación
 moderna.
 Se inició como parte de un proyecto cuyo
 objetivo fue el de desarrollar software
 avanzado para dispositivos electrónicos de
 consumo          (dispositivos      electrónicos
 inteligentes, como televisores, videos, equipos
 de sonido, etc.).
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   4
Historia.
 Se creó un equipo de trabajo en Sun
 Microsystem para tratar de resolver este
 problema. Inicialmente se pretendió utilizar
 C++ pero se identificaron numerosos
 problemas y se buscó diseñar un nuevo
 lenguaje.
 Como resultado, en 1990, el nuevo lenguaje
 recibió el nombre de Oak y era pequeño,
 confiable, y de arquitectura independiente.
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   5
Historia.
 En 1993, mientras el equipo continuaba
 trabajando, apareció la Red Mundial (www)
 en Internet y tuvo una gran aceptación.
 Los desarrolladores de Java pensaron que
 un lenguaje de arquitectura neutral sería
 ideal para programar en internet porque el
 programa podría ejecutarse en todos los
 tipos de computadoras conectadas a la red.
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   6
Historia de Java.
                             Autor                                    Compañía       Año       Versión

Patrik Naughton, James Goslin, Mike Sheridan (**)                   SUN           1990


James Goslin, escribió el compilador y lo denominó “Oak”.           SUN           1991


El equipo (**) desarrollo un prototipo llamado *7, Cruce entre      SUN           1992
un asistente digital personalizado y un mecanismo inteligente de
control remoto
Scot McNealy establece el proyecto verde                            SUN           1993-
                                                                                  1994

Patrik Naughton procedió a la construcción del lenguaje Java,       SUN           1995
llamado HotJava

8 paquetes, 212 clases - Primera versión pública. La presión        SUN           Enero de    1.0
hizo que se hiciera pública demasiado pronto, lo cual significa                   1996
que el diseño del lenguaje no es demasiado bueno y hay
montones de errores.

23 paquetes, 504 clases - mejoras de rendimiento en la JVM,         SUN           Marzo       1.1
nuevo modelo de eventos en AWT, clases anidadas,                                  1997
serialización de objetos, API de JavaBeans, archivos jar,
internacionalización, API Reflection (Reflexión), JDBC (Java
Data base Connectivity), RMI (Remote Method Invocation).

          Lic. MsD. Celestino Hernández                            Ciencias Computacionales              7
Cont. Historia de Java.
                           Autor                                Compañía         Año       Versión
59 paquetes, 1520 clases - JFC (Swing), Drag and Drop,          SUN           Diciembre    1.2
    Java2D, Corba, API Collections. Se producen notables                          1998
    mejoras a todos los niveles. Para enfatizar esto Sun lo
    renombra como "Java 2". El JDK (Java Development Kit)
    se renombra como SDK (Software Development Kit). Se
    divide en J2SE, J2EE y J2ME.

77 paquetes, 1595 clases - Orientada sobre todo a la            SUN           Abril 2000   1.3
   resolución de errores y a la mejora del rendimiento; se
   producen algunos cambios menores como la inclusión de
   JNDI (Java Naming and Directory Interface) y la API
   Java Sound.

103 paquetes, 2175 clases - También conocido como Merlin,       SUN           2002         1.4
    es la versión actual. Mejora notablemente el rendimiento
    y añade entre otros soporte de expresiones regulares, una
    nueva API de entrada/salida de bajo nivel
131 paquetes, 2656 clases - También conocido como Tiger,        SUN           Septiembre   1.5
    renombrado por motivos de marketing como Java 5.0.                            2004

131 paquetes, 2656 clases - También conocido como Tiger,        SUN           Diciembre    1.6
    renombrado por motivos de marketing como Java 6.0.                            2006


          Lic. MsD. Celestino Hernández                         Ciencias Computacionales             8
Cont. Historia de Java.

                     Autor                         Compañía          Año      Versión
 131 paquetes, 2656 clases - También conocido    SUN              2006 a      1.6 con
 como Tiger, renombrado por motivos de marketing                      2010    Update
 como Java 6.0.                                                               15 - 26


 Soporte para XML dentro del propio lenguaje, Un   ORACLE         Marzo de    JDK 7
 nuevo concepto de superpaquete , Soporte para                        2011
 closures, Introducción de anotaciones estándar
 para detectar fallos en el software.

 Soporte para XML dentro del propio lenguaje, Un   ORACLE         Junio de    JDK 7
 nuevo concepto de superpaquete , Soporte para                        2012    Update 5
 closures, Introducción de anotaciones estándar
 para detectar fallos en el software.




     Lic. MsD. Celestino Hernández                 Ciencias Computacionales              9
Qué es Java
 Java es una plataforma virtual de software desarrollada
 por sun microsystems de tal manera que los programas
 creados en ella puedan ejecutarse sin cambios en
 diferentes tipos de arquitecturas y dispositivos
 computacionales ( "diferentes plataformas").
 El significado de Java tal y como se le conoce en la
 actualidad es el de un lenguaje de programación y un
 entorno para ejecución de programas escritos en el
 lenguaje Java.
 Al contrario de los compiladores tradicionales, que
 convierten el código fuente en instrucciones a nivel de
 máquina, el compilador Java traduce el código fuente Java
 en instrucciones que son interpretadas por la Máquina
 Virtual Java (JVM).
    Lic. MsD. Celestino Hernández   Ciencias Computacionales   10
Java como lenguaje para internet.
 Java es un lenguaje para programar en
 Internet que trata de resolver dos problemas
 claves con el contenido de Internet:
  –   En la actualidad, el contenido de la WWW es
      pasivo y estático.
  –   La entrega (Deliverry) del contenido WWW es
      dependiente de la configuración de cada
      navegador Web de usuario.


      Lic. MsD. Celestino Hernández   Ciencias Computacionales   11
Java como lenguaje de propósito general.

 A medida que Java se populariza en
 desarrollo de internet, gana también como
 lenguaje de propósito general. Java es
 totalmente portable a gran variedad de
 plataformas hardware y sistemas operativos.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   12
Introducción
 El significado de Java, tal y como se le
 conoce en la actualidad, es el de un
 Lenguaje de Programación y entorno para
 ejecución de programas escritos en el
 lenguaje Java.
 Java es un lenguaje simple, orientado a
 objetos, distribuido, interpretado, robusto,
 seguro, de arquitectura neutral, portable, de
 alto rendimiento, multihilos, y dinámico.
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   13
Java como lenguaje de Internet.
    Java es un lenguaje para programar en Internet que trata de
    resolver dos problemas claves con el contenido de Internet:
     –     En la actualidad, el contenido de la WWW es pasivo y estático.
     –     La entrega del contenido WWW es dependiente de la
           configuración de cada navegador Web de usuario.
    En el mundo de la Web, Java es una tecnología facilitador
    que permite a los desarrolladores crear páginas Web que se
    entregaran de modo consistente a todos los usuarios con un
    navegador habilitado para Java y con independencia de la
    plataforma hardware y el sistema operativo que se esté
    utilizando.
Computadora Local
                                                    Computadora Servidor (host)
   Sistema Operativo
         Navegador Java
                                           Código
             Máquina Virtual de Java                 Código nativo Java
                                           Fuente

Transferencia de código fuente Java en Internet.
           Lic. MsD. Celestino Hernández            Ciencias Computacionales      14
Proceso de compilación de Java.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   15
MÁQUINA VIRTUAL JAVA (JVM).




                                                                      Bytecod
Programa fuente                                          Independencia de la plataforma.
                          Compilación
                                                            No se puede ejecutar por el
                                                                    procesador



                                                           JVM
                               Sólo hay que implementar una para cada plataforma.
                               Supervisa la ejecución del baytecode  seguridad.
                               La ejecución es algo más lenta que en código ejecutable.


        Lic. MsD. Celestino Hernández                   Ciencias Computacionales           16
Lenguaje de programación Java.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   17
Simple
 Aprenderse fácilmente y que fuera familiar
 (C y C++)
 Omite la sobrecarga de operadores (aunque
 sí existe la sobrecarga de métodos) y la
 herencia múltiple.
 Las construcciones como struct no son
 válidas.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   18
Simple
 Descarta la instrucción goto, sin embargo,
 provee instrucciones etiquetadas de break y
 continue.
 Incorpora la recolección de basura para
 manejo automático de memoria.
 Elimina los apuntadores.
 Maneja automáticamente la referenciación y
 de referenciación de objetos.
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   19
Orientado a Objetos
 La programación orientada a objetos modela el
 mundo real, cualquier cosa del mundo puede
 ser modelada como un objeto. Así, una
 circunferencia es un objeto, un automóvil es un
 objeto, una ventana es un objeto, un libro es un
 objeto e incluso un préstamo o una tarjeta de
 crédito son objetos. Un programa Java se
 denomina orientado a objetos debido a que la
 programación en Java se centra en la creación,
 manipulación y construcción de objetos.

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   20
Orientado a Objetos
 Un objeto tiene propiedades (un estado) y un
 comportamiento. Las propiedades o el estado se
 definen utilizando datos y el comportamiento se
 define utilizando métodos. Los objetos se definen
 utilizando clases en Java. Una clase es similar a
 una plantilla para construir objetos.
 Un objeto es una realización concreta de una
 descripción de una clase. El proceso de creación
 de objetos se denomina instanciación. (crear
 instancias) de una clase.
 Un programa consta de una o más clases que se
 disponen en una jerarquía en modo árbol, de modo
 que una clase hija pueda heredar propiedades y
 comportamientos de su clase padre
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   21
Distribuido

Las aplicaciones de Java pueden acceder a
objetos a través de la red por medio de
URL's con la misma facilidad que si
accediéramos a objetos en nuestro sistema
local de archivos.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   22
Interpretado
 El compilador de Java genera byte-codes, en lugar
  de código nativo de la máquina.
 Para ejecutar un programa en Java se utiliza el
  intérprete para ejecutar los byte-codes compilados,
  y por ello java es un lenguaje interpretado.

    NOTA: Los programas Java no necesitan ser
    recompilados en una máquina destino. Se
    compilan en un lenguaje máquina para una
    máquina imaginaria, denominada máquina virtual.


      Lic. MsD. Celestino Hernández   Ciencias Computacionales   23
Interpretado
 Los byte-codes de Java proveen un archivo objeto
 de arquitectura neutral que permite que los
 programas puedan transportarse a múltiples
 plataformas.

 Un programa en Java puede ejecutarse en
 cualquier sistema que cuente con el intérprete de
 Java y el sistema de run-time.
 Máquina Virtual de Java

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   24
Máquina Virtual de Java




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   25
Robusto
 Java pretende que se escriban programas
 confiables.

 Es un lenguaje fuertemente tipificado que
 permite, a tiempo de compilación, verificar
 problemas potenciales de asignación de
 tipos.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   26
Robusto
 La verificación de tipos es más fuerte que la de C+
 + ya que no permite declaraciones implícitas de
 métodos.

 Una de las mejoras de confiabilidad de Java es su
 modelo de memoria. Java no permite apuntadores,
 lo que elimina la posibilidad de sobreescribir en la
 memoria y corromper información valiosa.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   27
Robusto
 La recolección automática de memoria evita
 la fragmentación de la misma por la
 petición y borrado dinámico.

 El intérprete de Java realiza verificaciones a
 tiempo de ejecución para determinar que los
 accesos a arreglos y cadenas de caracteres
 se encuentren dentro de los límites.

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   28
Robusto
 Otra característica de Java es el manejo de
 excepciones. Esto simplifica la tarea de
 manejo de errores y recuperación de los
 mismos.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   29
Seguro
 La seguridad es una preocupación
 primordial ya que se pretende que Java se
 utilice en ambientes de red.

 Mecanismos de seguridad que impidan que
 algún programa trate de crear un virus o
 invadir el sistema de archivos.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   30
Seguro
 El modelo de alojamiento de memoria de
 Java es una de las principales defensas
 contra código corrupto. El sistema de run-
 time realiza la verificación de los byte-
 codes para asegurarse de que el código que
 transportamos por la red no viola la
 integridad del medio en el que nos
 encontramos.

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   31
Seguro
 Java maneja la tecnología de encriptación
 para verificar que un applet, que se recibe a
 través de la red, tiene su origen en un lugar
 autorizado y no ha sido modificado.

 Java conoce y puede combatir la mayoría de
 las técnicas que se han utilizado para
 desarrollar software corrupto.

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   32
Arquitectura Neutral
  Los programas de Java se compilan en un formato
  de arquitectura neutral conocido como byte-codes.
 La principal ventaja de esto es que Java puede
  ejecutarse en cualquier sistema mientras que se
  implemente la Máquina Virtual de Java.
Importante: Utilizando Java los desarrolladores
  necesitan escribir una única versión para
  ejecutarse en todas las plataformas, dado que los
  bytecodes no se corresponden a ninguna máquina
  específica y trabajan en todas las máquinas.

    Lic. MsD. Celestino Hernández   Ciencias Computacionales   33
Portable
 Java garantiza que no existen aspectos de
 dependencia     de     implementación en la
 especificación del lenguaje.

 El ambiente de Java es portable hacia nuevas
 plataformas de hardware y sistemas operativos. El
 compilador de Java está escrito en Java mientras
 que el sistema de run-time está escrito en ANSI C.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   34
Alto Rendimiento
 Java es un lenguaje interpretado y es por
 ello que nunca será tan rápido como un
 lenguaje compilado, como C++. De hecho
 Java es, en promedio, 20 veces más lento
 que C++.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   35
Alto Rendimiento
 Los compiladores de Java han ido mejorando sus
 prestaciones en las sucesivas versiones. Los
 nuevos compiladores conocidos como JIT (just-in-
 time) permiten que programas Java independientes
 de la plataforma se ejecuten con casi el mismo
 rendimiento en tiempo de ejecución que los
 lenguajes convencionales compilados.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   36
Multihilos
 En una aplicación como un browser de
 Web, es fácil imaginar múltiples tareas
 realizándose al mismo tiempo.

 Java es un lenguaje multihilos que puede
 contar con múltiples hilos de ejecución para
 manejar diferentes tareas.


   Lic. MsD. Celestino Hernández   Ciencias Computacionales   37
Multihilos
 Java hace de la programación multihilos
 una tarea más sencilla que en C y C++, al
 proporcionar utilerías que permiten iniciar,
 ejecutar, detener y verificar hilos. Además,
 cuenta con rutinas de sincronización.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   38
Dinámico
 Java se diseñó para adaptarse a un ambiente
 cambiante. Las definiciones de la clase run-
 time de Java hace posible que
 dinámicamente se liguen clases en un
 sistema en ejecución.




   Lic. MsD. Celestino Hernández   Ciencias Computacionales   39
La última Actualización Java J2SE 1.7.
(Java SE 7 Update 5).

  La actualización de la versión J2SE 1.7 (Java 2
  Standard Edition, UPDATE 5) está disponible en el
  sitio           web           de            ORACLE
  (http://www.oracle.com/technetwork/java/javase/dow
  nloads/index.html)
  Software para edición de programas de Java:
  http://www.jcreator.com/download/.
  Las aportaciones más interesantes se encuentran la
  integración en el núcleo de la plataforma de la
  posibilidad de trabajar con XML, estableciendo así los
  fundamentos básicos para la creación y consumo de
  servicios web
    Lic. MsD. Celestino Hernández   Ciencias Computacionales   40
LA PROGRAMACIÓN ORIENTADA A
  OBJETOS COMO BASE DE JAVA
La POO constituye una nueva forma de
organización del conocimiento en la que las
entidades centrales son los objetos.
En un objeto se unen una serie de datos con una
relación lógica entre ellos, estos datos son los
siguientes:
 – Variables de instancias.
 – Métodos.
 – Propiedades.
 – Mensajes.



  Lic. MsD. Celestino Hernández   Ciencias Computacionales   41
Conceptos básicos de programación en
Java.
 Objeto: desde el punto de vista de la
 programación, un objeto es una especie de
 “caja negra” que expone una serie de
 operaciones (métodos) que pueden ser
 utilizados por otros programas para la
 realización de tareas mayores.
 Clase: es el lugar donde se codifican los
 métodos que van a exponer los objetos de
 esa clase.
   Lic. MsD. Celestino Hernández   Ciencias Computacionales   42
Cont. Conceptos.
 Métodos y Campos.
 Los métodos definen el comportamiento de
 los objetos de una clase, estos métodos
 pueden hacer uso de campos o atributos
 para almacenar información sobre el objeto,
 información que pueden ser utilizada
 posteriormente por cualquiera de los
 métodos del objeto.

   Lic. MsD. Celestino Hernández   Ciencias Computacionales   43
Propiedades fundamentales de los objetos.

   El encapsulamiento: Consiste en la combinación
   de los datos y las operaciones que se pueden
   ejecutar sobre esos datos en un objeto, impidiendo
   usos indebidos al forzar que el acceso a los datos
   se efectúe siempre a través de los métodos del
   objeto.
    –   En java, la base del encapsulamiento es la clase, donde
        se define la estructura y el comportamiento que serán
        compartidos por el grupo de objetos pertenecientes a la
        misma.

        Lic. MsD. Celestino Hernández   Ciencias Computacionales   44
Propiedades fundamentales de los objetos.

   La herencia. Es la capacidad para crear
   nuevas clases que se construyen sobre otras
   existentes, permitiendo que éstas les
   transmitan sus propiedades.
    –   En la programación orientada a objetos, la
        reutilización de código se efectúa creando una
        subclase que constituye una restricción o
        extensión de la clase base, de la cual hereda sus
        propiedades.


        Lic. MsD. Celestino Hernández   Ciencias Computacionales   45
Propiedades fundamentales de los objetos.

   El Polimorfismo. Consigue que un mismo
   mensaje pueda actuar sobre diferentes tipos
   de objetos y comportarse de modo distinto.
   El polimorfismo adquiere su máxima
   expresión en la derivación o extensión de
   clases; es decir, cuando se obtienen nuevas
   clases a partir de una ya existente mediante
   la propiedad de derivación de clases o
   herencia.

     Lic. MsD. Celestino Hernández   Ciencias Computacionales   46

Más contenido relacionado

La actualidad más candente

La actualidad más candente (17)

Java kaime con
Java kaime conJava kaime con
Java kaime con
 
Java kaime conpre
Java kaime conpreJava kaime conpre
Java kaime conpre
 
JAVA
JAVAJAVA
JAVA
 
Java basico
Java basicoJava basico
Java basico
 
Guia1 java
Guia1 javaGuia1 java
Guia1 java
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Java pre
Java preJava pre
Java pre
 
Introduc java pre
Introduc java preIntroduc java pre
Introduc java pre
 
Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Compiladores (python)
Compiladores (python)Compiladores (python)
Compiladores (python)
 
JAVA
JAVAJAVA
JAVA
 
Tutorial de eclipse 2
Tutorial de eclipse 2Tutorial de eclipse 2
Tutorial de eclipse 2
 
[ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java [ES] Introdución a la plataforma java
[ES] Introdución a la plataforma java
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Ediciones de java
Ediciones de javaEdiciones de java
Ediciones de java
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 

Destacado

Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a ObjetosJuan Carlos Riva
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcionalJuan Rodríguez
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herenciaPedro Alvarez
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSAbraham Morales
 
Que es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosQue es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosBeydasanchezhernandez
 
Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Grupo PHP Argentina
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visualLibertad25
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosRightster
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosJavier Camacho
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 

Destacado (20)

Clase4
Clase4Clase4
Clase4
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional02 python Programación orientada a objetos y funcional
02 python Programación orientada a objetos y funcional
 
3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia3 poo abstraccion modula..herencia
3 poo abstraccion modula..herencia
 
Conceptos poo (presentación1)
Conceptos poo (presentación1)Conceptos poo (presentación1)
Conceptos poo (presentación1)
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 
Que es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetosQue es y para que sirve la programacion orientada a objetos
Que es y para que sirve la programacion orientada a objetos
 
Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5Enrique Place: Introducción a POO / UML / PHP5
Enrique Place: Introducción a POO / UML / PHP5
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Joomla
JoomlaJoomla
Joomla
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 

Similar a Historia y características de Java

Similar a Historia y características de Java (20)

Java
JavaJava
Java
 
Queesjava 1230140667149082-2
Queesjava 1230140667149082-2Queesjava 1230140667149082-2
Queesjava 1230140667149082-2
 
Aprendiendo Java SCF
Aprendiendo Java SCFAprendiendo Java SCF
Aprendiendo Java SCF
 
Java basico 2
Java basico 2Java basico 2
Java basico 2
 
Lenguaje de programación java
Lenguaje de programación  javaLenguaje de programación  java
Lenguaje de programación java
 
Java
JavaJava
Java
 
Pres1
Pres1Pres1
Pres1
 
Capítulo i que es java
Capítulo i que es javaCapítulo i que es java
Capítulo i que es java
 
Java lenguaje de desarrollo
Java lenguaje de desarrolloJava lenguaje de desarrollo
Java lenguaje de desarrollo
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Manual de Java.pdf
Manual de  Java.pdfManual de  Java.pdf
Manual de Java.pdf
 
Programación de Software - Java
Programación de Software - JavaProgramación de Software - Java
Programación de Software - Java
 
JAVA.pptx
JAVA.pptxJAVA.pptx
JAVA.pptx
 
Curso de java_basico
Curso de java_basicoCurso de java_basico
Curso de java_basico
 
Java basico
Java basicoJava basico
Java basico
 
Introduccion a java i
Introduccion a java iIntroduccion a java i
Introduccion a java i
 
Java
JavaJava
Java
 
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
 
0 java y net beans
0 java y net beans0 java y net beans
0 java y net beans
 
Java completo y agragado
Java completo y agragadoJava completo y agragado
Java completo y agragado
 

Historia y características de Java

  • 1. UNIVERSIDAD DE ORIENTE FACULTAD DE CIENCIAS ECONOMICAS SECCION DE INFORMATICA. Asignatura: Programación de Sistemas. Ciclo: 02/2012 Profesor: Lic. MsD. Celestino Hernández Arquitectura y Lenguaje Java Lic. MsD. Celestino Hernández Ciencias Computacionales 1
  • 2. Reflexión. Si tú llamas experiencias a tus dificultades y recuerdas que cada experiencia te ayuda a madurar, vas a crecer vigoroso y feliz, no importa cuán adversas parezcan las circunstancias. (Henry Miller) Lic. MsD. Celestino Hernández Ciencias Computacionales 2
  • 3. Objetivos: Conocer una breve historia del desarrollo y creación del lenguaje Java. Conocer las características más importantes de java como lenguaje de propósito general y como lenguaje de programación para internet. Lic. MsD. Celestino Hernández Ciencias Computacionales 3
  • 4. Historia. El lenguaje de programación Java así como su arquitectura se diseñaron para resolver problemas que se presentan en la programación moderna. Se inició como parte de un proyecto cuyo objetivo fue el de desarrollar software avanzado para dispositivos electrónicos de consumo (dispositivos electrónicos inteligentes, como televisores, videos, equipos de sonido, etc.). Lic. MsD. Celestino Hernández Ciencias Computacionales 4
  • 5. Historia. Se creó un equipo de trabajo en Sun Microsystem para tratar de resolver este problema. Inicialmente se pretendió utilizar C++ pero se identificaron numerosos problemas y se buscó diseñar un nuevo lenguaje. Como resultado, en 1990, el nuevo lenguaje recibió el nombre de Oak y era pequeño, confiable, y de arquitectura independiente. Lic. MsD. Celestino Hernández Ciencias Computacionales 5
  • 6. Historia. En 1993, mientras el equipo continuaba trabajando, apareció la Red Mundial (www) en Internet y tuvo una gran aceptación. Los desarrolladores de Java pensaron que un lenguaje de arquitectura neutral sería ideal para programar en internet porque el programa podría ejecutarse en todos los tipos de computadoras conectadas a la red. Lic. MsD. Celestino Hernández Ciencias Computacionales 6
  • 7. Historia de Java. Autor Compañía Año Versión Patrik Naughton, James Goslin, Mike Sheridan (**) SUN 1990 James Goslin, escribió el compilador y lo denominó “Oak”. SUN 1991 El equipo (**) desarrollo un prototipo llamado *7, Cruce entre SUN 1992 un asistente digital personalizado y un mecanismo inteligente de control remoto Scot McNealy establece el proyecto verde SUN 1993- 1994 Patrik Naughton procedió a la construcción del lenguaje Java, SUN 1995 llamado HotJava 8 paquetes, 212 clases - Primera versión pública. La presión SUN Enero de 1.0 hizo que se hiciera pública demasiado pronto, lo cual significa 1996 que el diseño del lenguaje no es demasiado bueno y hay montones de errores. 23 paquetes, 504 clases - mejoras de rendimiento en la JVM, SUN Marzo 1.1 nuevo modelo de eventos en AWT, clases anidadas, 1997 serialización de objetos, API de JavaBeans, archivos jar, internacionalización, API Reflection (Reflexión), JDBC (Java Data base Connectivity), RMI (Remote Method Invocation). Lic. MsD. Celestino Hernández Ciencias Computacionales 7
  • 8. Cont. Historia de Java. Autor Compañía Año Versión 59 paquetes, 1520 clases - JFC (Swing), Drag and Drop, SUN Diciembre 1.2 Java2D, Corba, API Collections. Se producen notables 1998 mejoras a todos los niveles. Para enfatizar esto Sun lo renombra como "Java 2". El JDK (Java Development Kit) se renombra como SDK (Software Development Kit). Se divide en J2SE, J2EE y J2ME. 77 paquetes, 1595 clases - Orientada sobre todo a la SUN Abril 2000 1.3 resolución de errores y a la mejora del rendimiento; se producen algunos cambios menores como la inclusión de JNDI (Java Naming and Directory Interface) y la API Java Sound. 103 paquetes, 2175 clases - También conocido como Merlin, SUN 2002 1.4 es la versión actual. Mejora notablemente el rendimiento y añade entre otros soporte de expresiones regulares, una nueva API de entrada/salida de bajo nivel 131 paquetes, 2656 clases - También conocido como Tiger, SUN Septiembre 1.5 renombrado por motivos de marketing como Java 5.0. 2004 131 paquetes, 2656 clases - También conocido como Tiger, SUN Diciembre 1.6 renombrado por motivos de marketing como Java 6.0. 2006 Lic. MsD. Celestino Hernández Ciencias Computacionales 8
  • 9. Cont. Historia de Java. Autor Compañía Año Versión 131 paquetes, 2656 clases - También conocido SUN 2006 a 1.6 con como Tiger, renombrado por motivos de marketing 2010 Update como Java 6.0. 15 - 26 Soporte para XML dentro del propio lenguaje, Un ORACLE Marzo de JDK 7 nuevo concepto de superpaquete , Soporte para 2011 closures, Introducción de anotaciones estándar para detectar fallos en el software. Soporte para XML dentro del propio lenguaje, Un ORACLE Junio de JDK 7 nuevo concepto de superpaquete , Soporte para 2012 Update 5 closures, Introducción de anotaciones estándar para detectar fallos en el software. Lic. MsD. Celestino Hernández Ciencias Computacionales 9
  • 10. Qué es Java Java es una plataforma virtual de software desarrollada por sun microsystems de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales ( "diferentes plataformas"). El significado de Java tal y como se le conoce en la actualidad es el de un lenguaje de programación y un entorno para ejecución de programas escritos en el lenguaje Java. Al contrario de los compiladores tradicionales, que convierten el código fuente en instrucciones a nivel de máquina, el compilador Java traduce el código fuente Java en instrucciones que son interpretadas por la Máquina Virtual Java (JVM). Lic. MsD. Celestino Hernández Ciencias Computacionales 10
  • 11. Java como lenguaje para internet. Java es un lenguaje para programar en Internet que trata de resolver dos problemas claves con el contenido de Internet: – En la actualidad, el contenido de la WWW es pasivo y estático. – La entrega (Deliverry) del contenido WWW es dependiente de la configuración de cada navegador Web de usuario. Lic. MsD. Celestino Hernández Ciencias Computacionales 11
  • 12. Java como lenguaje de propósito general. A medida que Java se populariza en desarrollo de internet, gana también como lenguaje de propósito general. Java es totalmente portable a gran variedad de plataformas hardware y sistemas operativos. Lic. MsD. Celestino Hernández Ciencias Computacionales 12
  • 13. Introducción El significado de Java, tal y como se le conoce en la actualidad, es el de un Lenguaje de Programación y entorno para ejecución de programas escritos en el lenguaje Java. Java es un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multihilos, y dinámico. Lic. MsD. Celestino Hernández Ciencias Computacionales 13
  • 14. Java como lenguaje de Internet. Java es un lenguaje para programar en Internet que trata de resolver dos problemas claves con el contenido de Internet: – En la actualidad, el contenido de la WWW es pasivo y estático. – La entrega del contenido WWW es dependiente de la configuración de cada navegador Web de usuario. En el mundo de la Web, Java es una tecnología facilitador que permite a los desarrolladores crear páginas Web que se entregaran de modo consistente a todos los usuarios con un navegador habilitado para Java y con independencia de la plataforma hardware y el sistema operativo que se esté utilizando. Computadora Local Computadora Servidor (host) Sistema Operativo Navegador Java Código Máquina Virtual de Java Código nativo Java Fuente Transferencia de código fuente Java en Internet. Lic. MsD. Celestino Hernández Ciencias Computacionales 14
  • 15. Proceso de compilación de Java. Lic. MsD. Celestino Hernández Ciencias Computacionales 15
  • 16. MÁQUINA VIRTUAL JAVA (JVM). Bytecod Programa fuente Independencia de la plataforma. Compilación No se puede ejecutar por el procesador JVM Sólo hay que implementar una para cada plataforma. Supervisa la ejecución del baytecode  seguridad. La ejecución es algo más lenta que en código ejecutable. Lic. MsD. Celestino Hernández Ciencias Computacionales 16
  • 17. Lenguaje de programación Java. Lic. MsD. Celestino Hernández Ciencias Computacionales 17
  • 18. Simple Aprenderse fácilmente y que fuera familiar (C y C++) Omite la sobrecarga de operadores (aunque sí existe la sobrecarga de métodos) y la herencia múltiple. Las construcciones como struct no son válidas. Lic. MsD. Celestino Hernández Ciencias Computacionales 18
  • 19. Simple Descarta la instrucción goto, sin embargo, provee instrucciones etiquetadas de break y continue. Incorpora la recolección de basura para manejo automático de memoria. Elimina los apuntadores. Maneja automáticamente la referenciación y de referenciación de objetos. Lic. MsD. Celestino Hernández Ciencias Computacionales 19
  • 20. Orientado a Objetos La programación orientada a objetos modela el mundo real, cualquier cosa del mundo puede ser modelada como un objeto. Así, una circunferencia es un objeto, un automóvil es un objeto, una ventana es un objeto, un libro es un objeto e incluso un préstamo o una tarjeta de crédito son objetos. Un programa Java se denomina orientado a objetos debido a que la programación en Java se centra en la creación, manipulación y construcción de objetos. Lic. MsD. Celestino Hernández Ciencias Computacionales 20
  • 21. Orientado a Objetos Un objeto tiene propiedades (un estado) y un comportamiento. Las propiedades o el estado se definen utilizando datos y el comportamiento se define utilizando métodos. Los objetos se definen utilizando clases en Java. Una clase es similar a una plantilla para construir objetos. Un objeto es una realización concreta de una descripción de una clase. El proceso de creación de objetos se denomina instanciación. (crear instancias) de una clase. Un programa consta de una o más clases que se disponen en una jerarquía en modo árbol, de modo que una clase hija pueda heredar propiedades y comportamientos de su clase padre Lic. MsD. Celestino Hernández Ciencias Computacionales 21
  • 22. Distribuido Las aplicaciones de Java pueden acceder a objetos a través de la red por medio de URL's con la misma facilidad que si accediéramos a objetos en nuestro sistema local de archivos. Lic. MsD. Celestino Hernández Ciencias Computacionales 22
  • 23. Interpretado  El compilador de Java genera byte-codes, en lugar de código nativo de la máquina.  Para ejecutar un programa en Java se utiliza el intérprete para ejecutar los byte-codes compilados, y por ello java es un lenguaje interpretado. NOTA: Los programas Java no necesitan ser recompilados en una máquina destino. Se compilan en un lenguaje máquina para una máquina imaginaria, denominada máquina virtual. Lic. MsD. Celestino Hernández Ciencias Computacionales 23
  • 24. Interpretado Los byte-codes de Java proveen un archivo objeto de arquitectura neutral que permite que los programas puedan transportarse a múltiples plataformas. Un programa en Java puede ejecutarse en cualquier sistema que cuente con el intérprete de Java y el sistema de run-time. Máquina Virtual de Java Lic. MsD. Celestino Hernández Ciencias Computacionales 24
  • 25. Máquina Virtual de Java Lic. MsD. Celestino Hernández Ciencias Computacionales 25
  • 26. Robusto Java pretende que se escriban programas confiables. Es un lenguaje fuertemente tipificado que permite, a tiempo de compilación, verificar problemas potenciales de asignación de tipos. Lic. MsD. Celestino Hernández Ciencias Computacionales 26
  • 27. Robusto La verificación de tipos es más fuerte que la de C+ + ya que no permite declaraciones implícitas de métodos. Una de las mejoras de confiabilidad de Java es su modelo de memoria. Java no permite apuntadores, lo que elimina la posibilidad de sobreescribir en la memoria y corromper información valiosa. Lic. MsD. Celestino Hernández Ciencias Computacionales 27
  • 28. Robusto La recolección automática de memoria evita la fragmentación de la misma por la petición y borrado dinámico. El intérprete de Java realiza verificaciones a tiempo de ejecución para determinar que los accesos a arreglos y cadenas de caracteres se encuentren dentro de los límites. Lic. MsD. Celestino Hernández Ciencias Computacionales 28
  • 29. Robusto Otra característica de Java es el manejo de excepciones. Esto simplifica la tarea de manejo de errores y recuperación de los mismos. Lic. MsD. Celestino Hernández Ciencias Computacionales 29
  • 30. Seguro La seguridad es una preocupación primordial ya que se pretende que Java se utilice en ambientes de red. Mecanismos de seguridad que impidan que algún programa trate de crear un virus o invadir el sistema de archivos. Lic. MsD. Celestino Hernández Ciencias Computacionales 30
  • 31. Seguro El modelo de alojamiento de memoria de Java es una de las principales defensas contra código corrupto. El sistema de run- time realiza la verificación de los byte- codes para asegurarse de que el código que transportamos por la red no viola la integridad del medio en el que nos encontramos. Lic. MsD. Celestino Hernández Ciencias Computacionales 31
  • 32. Seguro Java maneja la tecnología de encriptación para verificar que un applet, que se recibe a través de la red, tiene su origen en un lugar autorizado y no ha sido modificado. Java conoce y puede combatir la mayoría de las técnicas que se han utilizado para desarrollar software corrupto. Lic. MsD. Celestino Hernández Ciencias Computacionales 32
  • 33. Arquitectura Neutral Los programas de Java se compilan en un formato de arquitectura neutral conocido como byte-codes.  La principal ventaja de esto es que Java puede ejecutarse en cualquier sistema mientras que se implemente la Máquina Virtual de Java. Importante: Utilizando Java los desarrolladores necesitan escribir una única versión para ejecutarse en todas las plataformas, dado que los bytecodes no se corresponden a ninguna máquina específica y trabajan en todas las máquinas. Lic. MsD. Celestino Hernández Ciencias Computacionales 33
  • 34. Portable Java garantiza que no existen aspectos de dependencia de implementación en la especificación del lenguaje. El ambiente de Java es portable hacia nuevas plataformas de hardware y sistemas operativos. El compilador de Java está escrito en Java mientras que el sistema de run-time está escrito en ANSI C. Lic. MsD. Celestino Hernández Ciencias Computacionales 34
  • 35. Alto Rendimiento Java es un lenguaje interpretado y es por ello que nunca será tan rápido como un lenguaje compilado, como C++. De hecho Java es, en promedio, 20 veces más lento que C++. Lic. MsD. Celestino Hernández Ciencias Computacionales 35
  • 36. Alto Rendimiento Los compiladores de Java han ido mejorando sus prestaciones en las sucesivas versiones. Los nuevos compiladores conocidos como JIT (just-in- time) permiten que programas Java independientes de la plataforma se ejecuten con casi el mismo rendimiento en tiempo de ejecución que los lenguajes convencionales compilados. Lic. MsD. Celestino Hernández Ciencias Computacionales 36
  • 37. Multihilos En una aplicación como un browser de Web, es fácil imaginar múltiples tareas realizándose al mismo tiempo. Java es un lenguaje multihilos que puede contar con múltiples hilos de ejecución para manejar diferentes tareas. Lic. MsD. Celestino Hernández Ciencias Computacionales 37
  • 38. Multihilos Java hace de la programación multihilos una tarea más sencilla que en C y C++, al proporcionar utilerías que permiten iniciar, ejecutar, detener y verificar hilos. Además, cuenta con rutinas de sincronización. Lic. MsD. Celestino Hernández Ciencias Computacionales 38
  • 39. Dinámico Java se diseñó para adaptarse a un ambiente cambiante. Las definiciones de la clase run- time de Java hace posible que dinámicamente se liguen clases en un sistema en ejecución. Lic. MsD. Celestino Hernández Ciencias Computacionales 39
  • 40. La última Actualización Java J2SE 1.7. (Java SE 7 Update 5). La actualización de la versión J2SE 1.7 (Java 2 Standard Edition, UPDATE 5) está disponible en el sitio web de ORACLE (http://www.oracle.com/technetwork/java/javase/dow nloads/index.html) Software para edición de programas de Java: http://www.jcreator.com/download/. Las aportaciones más interesantes se encuentran la integración en el núcleo de la plataforma de la posibilidad de trabajar con XML, estableciendo así los fundamentos básicos para la creación y consumo de servicios web Lic. MsD. Celestino Hernández Ciencias Computacionales 40
  • 41. LA PROGRAMACIÓN ORIENTADA A OBJETOS COMO BASE DE JAVA La POO constituye una nueva forma de organización del conocimiento en la que las entidades centrales son los objetos. En un objeto se unen una serie de datos con una relación lógica entre ellos, estos datos son los siguientes: – Variables de instancias. – Métodos. – Propiedades. – Mensajes. Lic. MsD. Celestino Hernández Ciencias Computacionales 41
  • 42. Conceptos básicos de programación en Java. Objeto: desde el punto de vista de la programación, un objeto es una especie de “caja negra” que expone una serie de operaciones (métodos) que pueden ser utilizados por otros programas para la realización de tareas mayores. Clase: es el lugar donde se codifican los métodos que van a exponer los objetos de esa clase. Lic. MsD. Celestino Hernández Ciencias Computacionales 42
  • 43. Cont. Conceptos. Métodos y Campos. Los métodos definen el comportamiento de los objetos de una clase, estos métodos pueden hacer uso de campos o atributos para almacenar información sobre el objeto, información que pueden ser utilizada posteriormente por cualquiera de los métodos del objeto. Lic. MsD. Celestino Hernández Ciencias Computacionales 43
  • 44. Propiedades fundamentales de los objetos. El encapsulamiento: Consiste en la combinación de los datos y las operaciones que se pueden ejecutar sobre esos datos en un objeto, impidiendo usos indebidos al forzar que el acceso a los datos se efectúe siempre a través de los métodos del objeto. – En java, la base del encapsulamiento es la clase, donde se define la estructura y el comportamiento que serán compartidos por el grupo de objetos pertenecientes a la misma. Lic. MsD. Celestino Hernández Ciencias Computacionales 44
  • 45. Propiedades fundamentales de los objetos. La herencia. Es la capacidad para crear nuevas clases que se construyen sobre otras existentes, permitiendo que éstas les transmitan sus propiedades. – En la programación orientada a objetos, la reutilización de código se efectúa creando una subclase que constituye una restricción o extensión de la clase base, de la cual hereda sus propiedades. Lic. MsD. Celestino Hernández Ciencias Computacionales 45
  • 46. Propiedades fundamentales de los objetos. El Polimorfismo. Consigue que un mismo mensaje pueda actuar sobre diferentes tipos de objetos y comportarse de modo distinto. El polimorfismo adquiere su máxima expresión en la derivación o extensión de clases; es decir, cuando se obtienen nuevas clases a partir de una ya existente mediante la propiedad de derivación de clases o herencia. Lic. MsD. Celestino Hernández Ciencias Computacionales 46