• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
C1 java introduccion
 

C1 java introduccion

on

  • 710 views

Solo para alumonos de la maestria

Solo para alumonos de la maestria

Statistics

Views

Total Views
710
Views on SlideShare
710
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    C1 java introduccion C1 java introduccion Presentation Transcript

    • Java avanzado Aspectos generales
    • Objetivos de la asignatura Los alumnos sean capaces de:
      • Entender los conceptos básicos de la programación orientada a objetos.
      • Diseñar clases y jerarquías de clases.
      • Escribir un programa java para un ambiente de programación.
      • Resolver un problema sencillo usando JAVA
    • Evaluación de la asignatura
      • Un trabajo extraclase individual
      • El trabajo en el laboratorio
      • Una pregunta escrita en la semana 2
      • Una prueba final
    • Temas de la clase 1. Introducción
      • Que es Java
      • Un poco de historia
      • Herramientas disponibles
      • Empezando a programar
    • Objetivos de la clase 1. Introducción
      • Conocer las razones que dieron origen al Lenguaje java.
      • Tener nociones de las herramientas para trabajar con java.
      • Comprender las diferencias y similitudes de java con otros lenguajes de programación
    • Sitios de sus creadores:
      • http://java.sun.com ultima versión de JDK:
      • http :// java.sun.com / products / index.html
      • http :// www.microsoft.com / visualj / o el Wrokshop de Sun en http :// www.sun.com / developer - products /java / .
    • Java: un poco de historia Desarrollado por la Sun MicroSystems en 1991. Formaba parte del proyecto GREEN, software para controlar dispositivos electrodomésticos. También aspiraban a que los dispositivos se comunicaran entre ellos.
    • Inicio de la investigación Un prototipo de dispositivo STAR 7 parecido a un control remoto, que se comunicaba con otros de la misma especie. Se pensaba usar C++ Como lenguaje de programación.
        • A James Gosling no le gustaba como C++ resolvía las tareas.
      Se encerró en su escritorio y escribió el lenguaje que denomino OAK.
    • Continua el proyecto En 1994 fue creado el navegador Web para ejecutar applets de java. Eso demostró: a) lo que ofrecía Java para la www y b) el tipo de programas que podría crearse. Los programadores Patrick Naughton y Jonathan Payne usaron Java para crear el navegador, que se denomino primero Web Runner y después HotJava.
    • El despegue Se produce después que Netscape se convierte en la primera empresa en licenciarla en agosto de 1995. En una conferencia en mayo de 1996 el empresario de Netscape Marc Andreesen expreso: “El lenguaje java es una tremenda oportunidad para todos ” Después del lanzamiento publico del lenguaje Java la Sun junto con otra subsidiaria llamada JavaSoft le dio un considerable impulso la lenguaje.
    • Versiones
      • Java 1.0.2
      • Java 1.1.5
      • Java 1.2
      • Java 2
      Se corresponden con las de (Java Development Kit) o JDK
    • Herramientas disponibles
      • Symantec Visual Café.
      • Borland JBuilder.
      • SuperCede.
      • Rogue Wave JFactory.
      • Natural Intelligence Roaster.
      • MetroWerks CodeWarrior.
      • SunSoft java WorkShop.
      • Eclipse
    •  
    • Perspectivas??? La empresa de tecnología KPCB(Kleiner, Perkins , caufield and Byers) ofreció 100 millones de dólares para apoyar la apertura de empresas que usaran Java como lenguaje de programación.
      • Sus principales virtudes son:
      • Naturaleza independiente de plataforma.
      • Orientación a objetos.
      • Fácil aprendizaje
    • El lenguaje Java Es a la vez: Compilado: convierte los .java en bytecodes. Interpretado. ejecuta cada una de estas instrucciones en un ordenador específico .
    •  
    • Cada intérprete Java Es una implementación de la Máquina Virtual Java (JVM). Los bytecodes posibilitan el objetivo de " write once, run anywhere ", de escribir el programa una vez y que se pueda correr en cualquier plataforma que disponga de una implementación de la JVM. Por ejemplo, el mismo programa Java puede correr en Windows 98, Solaris, Macintosh, etc.
    • Java se refiere a:
      • El lenguaje: para crear programas.
      • La Máquina Virtual Java: para ejecutarlos.
      • La próxima slide muestra:
      • Que el API de Java y la Máquina Virtual Java forman una capa intermedia (Java platform) que aísla el programa Java de las especificidades del hardware.
    •  
    • La Máquina Virtual Java La Máquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar. El intérprete Java específico ejecuta las instrucciones que se guardan en los archivos cuya extensión es .class.
    • Cinco tareas principales de la JVM
      • Reservar espacio en memoria para los objetos creados.
      • Liberar la memoria no usada (garbage collection).
      • Asignar variables a registros y pilas
      • Llamar al sistema huésped para ciertas funciones, como los accesos a los dispositivos
      • Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java
    • En la última tarea
      • Las referencias a arrays son verificadas en el momento de la ejecución del programa.
      • No hay manera de manipular de forma directa los punteros.
      • La JVM gestiona automáticamente el uso de la memoria, de modo que no queden espacios desocupados.
      • No se permiten realizar ciertas conversiones (casting) entre distintos tipos de datos.
    • El lenguaje Java El lenguaje Java no está diseñado solamente para crear applets que corren en la ventana del navegador. Java es un lenguaje de propósito general, de alto nivel, y orientado a objetos.
    • Java es un lenguaje de programación orientado a objetos puro, en el sentido de que no hay ninguna variable, función o constante que no esté dentro de una clase. Se accede a los miembros dato y las funciones miembro a través de los objetos y de las clases. Por razones de eficiencia, se han conservado los tipos básicos de datos, int, float, double, char, etc, similares a los del lenguaje C/C++. Orientado a objetos puro
    • Tipos de programas más comunes applets (se ejecutan en el navegador de la máquina cliente). aplicaciones (programas que se ejecutan directamente en la JVM). servlet que es similar a los applets pero se ejecutan en los servidores Java.
    • Applets
      • Pueden ser usados para crear:
      • Animación.
      • Figuras.
      • Juegos.
      • Formularios.
      • Otros efectos interactivos
      Nota Ejemplo
    • La API de Java
      • Está formada un conjunto de paquetes de clases que le proporcionan una gran funcionalidad.
      • El núcleo de la API viene con cada una de las implementaciones de la JVM:
      • Lo esencial: tipos de datos, clases y objetos, arrays, cadenas de caracteres (strings), subprocesos (threads), entrada/salida, propiedades del sistema, etc.
      • Applets
      • Manejo de la red (networking)
      • Internacionalización
      • Seguridad
      • Componentes (JavaBeans)
      • Persistencia (Object serialization)
      • Conexión a bases de datos (JDBC)
      La API de Java
    • El primer programa en Java Los programas fuentes escritos en Java son archivos de textos puro que pueden ser escritos en cualquier editor. Por lo tanto para escribir el primer programa, lo primero es activar un editor.
    • Características distintivas Java
    • Es SIMPLE Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje. Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (reciclador de memoria dinámica). No es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentación de la memoria.
    • Reduce en un 50% los errores más comunes de programación
      • aritmética de punteros.
      • no existen referencias.
      • registros (struct).
      • definición de tipos (typedef).
      • macros (#define).
      • necesidad de liberar memoria (free).
      • Aunque, en realidad, lo que hace es eliminar las palabras reservadas (struct, typedef), ya que las clases son algo parecido.
      • Además, el intérprete completo de Java que hay en este momento es muy pequeño, solamente ocupa 215 Kb de RAM.
    • Es ORIENTADO A OBJETOS Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias.
    • Java incorpora funcionalidades inexistentes en C++ En C++ se suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la aplicación cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz específica llamada RTTI (RunTime Type Identification) que define la interacción entre objetos excluyendo variables de instancias o implementación de métodos. Las clases en Java tienen una representación en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.
    • Es DISTRIBUIDO: Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales. La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas, interactuando.
    • Es ROBUSTO
      • Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución.
      • Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de memoria.
      • Implementa los arrays auténticos, en vez de listas enlazadas de punteros, con comprobación de límites, para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que señalan a zonas equivocadas.
    • ADEMAS… Java proporciona: Comprobación de punteros Comprobación de límites de arrays Excepciones Verificación de byte-codes
    • Es de ARQUITECTURA NEUTRAL: El compilador Java compila su código a un fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará. Cualquier máquina que tenga el sistema de ejecución (run-time) puede ejecutar ese código objeto, sin importar en modo alguno la máquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas.
    •  
    • Arquitectura de Java sobre una plataforma genérica
    • Es SEGURO Cuando se usa Java para crear un navegador, se combinan las características del lenguaje con protecciones de sentido común aplicadas al propio navegador. Los programadores de C utilizan punteros en conjunción con operaciones aritméticas. Con un lenguaje como C, se pueden tomar números enteros aleatorios y convertirlos en punteros para luego acceder a la memoria:
    • Es PORTABLE: Más allá de la portabilidad básica por ser de arquitectura independiente, Java implementa otros estándares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y además, enteros de 32 bits en complemento a 2. Además, Java construye sus interfaces de usuario a través de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac.
    • Es INTERPRETADO El intérprete Java (sistema run-time) puede ejecutar directamente el código objeto. Enlazar (linkar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con Java pasarán más tiempo desarrollando y menos esperando por el ordenador. No obstante, el compilador actual del JDK es bastante lento. Por ahora, que todavía no hay compiladores específicos de Java para las diversas plataformas, Java es más lento que otros lenguajes de programación, como C++, ya que debe ser interpretado y no ejecutado como sucede en cualquier programa tradicional.
    • Es MULTITHREADED Al ser multithreaded (multihilvanado, en mala traducción), Java permite muchas actividades simultáneas en un programa. Los threads (a veces llamados, procesos ligeros), son básicamente pequeños procesos o piezas independientes de un gran proceso. Al estar los threads construidos en el lenguaje, son más fáciles de usar y más robustos que sus homólogos en C o C++.
    • Es MULTITHREADED cont… El beneficio de ser miltithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real. Aunque el comportamiento en tiempo real está limitado a las capacidades del sistema operativo subyacente (Unix, Windows, etc.), aún supera a los entornos de flujo único de programa (single-threaded) tanto en facilidad de desarrollo como en rendimiento. Cualquiera que haya utilizado la tecnología de navegación concurrente, sabe lo frustrante que puede ser esperar por una gran imagen que se está trayendo. En Java, las imágenes se pueden ir trayendo en un thread independiente, permitiendo que el usuario pueda acceder a la información en la página sin tener que esperar por el navegador.
    • Es DINAMICO Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no intenta conectar todos los módulos que comprenden una aplicación hasta el tiempo de ejecución. Las librería nuevas o actualizadas no paralizarán las aplicaciones actuales (siempre que mantengan el API anterior).
    • Piezas que el sistema necesita para funcionar.
    • Fin de la clase
    • Actualmente, casi todos los applets son escritos en java 1.0.2, la primera versión del lenguaje, porque las empresas lideres en la fabricación de navegadores demoraron en ofrecer soporte a los navegadores 1.1 y 1.2. Actualmente los navegadores incluyen soporte para las ultimas versiones del lenguaje Nota1
    • Nota 2 Pentium PowerPc SPARC Código Java Compilador Java Byte code Java
    • Orientado a objetos Un modo de conceptuar un programa de computadora como un conjunto de objetos en interacción . Java hereda gran parte de estos conceptos de C++, lenguaje en el que esta fuertemente basado.