UNIVERSIDAD MILITAR NUEVA GRANADA PROGRAMACION III INTEGRANTES:  GRUPO: 1 MEC. Jose Luis Lobo Andres Felipe Muñoz Camilo Linares Villegas TEMA: Java
JAVA Historia
JAVA Paradigma Orientado a objetos Apareció en: 1995 Diseñado por: Sun Microsystems Influido por: Objetive-C, C++, Smalltalk, Eiffel Ha influido a: C#, J#, JavaScript, PHP Sistema operativo: Multiplataforma Licencia de software: GNU GPL / Java Community Process
Historia Set-top-box “ caja que se coloca encima del televisor” Recepción televisión analógica-digital “ The Green Project” 1991 Green Team James Gosling
Nombre Oak Green Java JAVA J ames Gosling,  A rthur  V an Holf,  A ndy Bechtolsheim Lista aleatoria de palabras J ust  A nother  V ague  A cronym (“solo otro acrónimo ambiguo más”) Tipo de café (logo)
Ideas Implementar una máquina virtual y un lenguaje con estructura y sintaxis similar a C++ “ Write Once, Run Anywhere” “Escríbelo una vez, ejecútalo en cualquier lugar”
Java Development Kit JDK 1.0 23/01/1996 Primer lanzamiento JDK 1.1 19/02/1997 Adiciones: Clases internas JavaBeans (encapsular varios objetos en uno solo) JDBC [Java Database Connectivity] (libre de sistema operativo) RMI [Remote Method Invocation] (invoca un método de manera remota)
Java 2 Standart Edition J2SE 1.2 08/12/1998 Nombre clave:  Playground Adiciones: Adición palabras reservadas Reflexión (programa puede observar y modificar la estructura) Java IDL [Lenguaje de Descripción de Interfaz] (dos objetos interactúan sobre diferentes plataformas a través de una red)
Java 2 Standart Edition J2SE 1.3 08/05/2000 Nombre clave:  Kestrel Adiciones: RMI basado en CORBA JavaSound (efectos básicos y control de entrada y salida de sonido) JPDA [Java Platform Debugger Architecture] ( proporciona una infraestructura para depurar aplicaciones de J2SE)
Java 2 Standart Edition J2SE 1.4 06/02/2002 Nombre clave:  Merlín Adiciones: Adición palabras reservadas Java Web Start (utilizar aplicaciones que están en un servidor web) Seguridad integrada API I/O (lectura de formatos JPEG o PNG)
Java 2 Standart Edition J2SE 5.0 (J2S3 1.5) 30/09/2004 Nombre clave:  Tiger Adiciones: Plantillas (conversión de tipos ) Metadatos (permite a estructuras, clases-métodos, ser etiquetados con datos adicionales) Enumeraciones (enumpattern -> enum)
Java Platform Standard Edition JAVA SE 6 11/12/2006 Nombre clave:  Mustang Adiciones: Combinación de lenguajes (Java, PHP, Python, Ruby, JavaScript) Servicio Web Mejoras en la interfaz gráfica y rendimiento
Java Platform Standard Edition Java SE 7 Nombre clave:  Dolphin Adiciones: Superpaquetes Soporte para closures [clausuras] (función que es evaluada en un entorno conteniendo una o más variables dependientes de otro entorno. En algunos lenguajes, una clausura puede aparecer cuando una función está definida dentro de otra función, y la función más interna refiere a las variables locales de la función externa) Introducción de anotaciones estándar para detectar fallos en el software.
No Oficiales NIO2. Java Module System. Java Kernel. Nueva API para el manejo de Días y Fechas, la cual reemplazara las antiguas clases Date y Calendar. Posibilidad de operar con clases BigDecimal usando operandos.
JAVA API y JVM
API ¿Qué es?  Es una Interfaz de Programación de Aplicaciones provista por los creadores del lenguaje Java, y que da a los programadores los medios para desarrollar aplicaciones Java.
¿Para que sirve? La API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa. Organización: La API Java está organizada en paquetes lógicos, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.
Hay una gran variedad de API’s para realizar distintos tipos operaciones, las mas usuales son: JAXP Servlets Hibernate
Entre los programadores de Java se suele identificar cada una de las diferentes bibliotecas existentes como API's java. Cuando se construye un sistema informático este suele emplear diversas API`s.
Maquina virtual (JVM) Es un ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (bytecode), el cual es generado por el compilador del lenguaje Java. Pieza fundamental de la plataforma Java.
Actúa como un “puente” que entiende tanto el bytecode, como el sistema sobre el que se pretende ejecutar. Aporta portabilidad al lenguaje.
Entorno de ejecución El código debe compilarse de acuerdo a un formato binario portable estandarizado, normalmente con extensión .class. Puede componerse de múltiples clases, en donde cada clase tendrá asociada su propio archivo .class.
Los archivos de clase pueden empaquetarse juntos en un archivo con formato jar. El empaquetado evita la sobrecarga por la continua apertura y cierre de conexiones para cada uno de los fragmentos necesarios.
El código resultante de la compilación es ejecutado por la JVM que lleva a cabo la emulación del conjunto de instrucciones mediante un compilador. Para cada dispositivo debe haber una JVM específica, ya sea un teléfono móvil, un PC con Windows XP, o un microondas.
Verificador del bytecode La JVM “verifica” todo bytecode antes de ejecutarlo. Permite la protección de memoria sin necesidad de una unidad de Gestión de Memoria.
Implementaciones de la máquina virtual La edición J2SE tiene dos implementaciones de la máquina virtual: Java HotSpot Client VM Java HotSpot Server VM
JAVA TIPOS DE DATOS
El tipo de dato de una variable indica los valores que la variable puede contener y las operaciones que se pueden realizar con ella. Podemos diferenciar los datos en Java en dos categorías de datos principales: los  tipos primitivos  y los  tipos referenciados. Los tipos primitivos contienen un sólo valor e incluyen los tipos como: enteros, coma flotante, caracteres, etc. En Java tenemos los arrays, las clases y las interfaces como tipos de datos referenciados.
Primitivos Enteros:  Estos tipos son  byte, short, int y long,  que guardan el signo valor, estos representan un número y no pueden representar elementos fraccionarios.
public class enteros {    public static void main(String[] arg)    {        byte  midato1 = 1;        short  midato2 = 100;        int  midato3 = 10000;        long  midato4 = 100000000;       System.out .println("midato = " + midato1);       ....    } }
Números en coma flotante:  Estos son  float y double,  nos permiten representar números decimales. Todos los literales de coma flotante son del tipo  double  salvo que se especifique lo contrario, por eso si se intenta asignar un literal en coma flotante a una variable de tipo float el compilador nos dará un error (tipos incompatibles):
public class tipoDecinales {    public static void main(String[] arg)    {        float  valor;       valor = 2.6;       System.out .println("Valor del dato= " + valor);  //esto dara un error.     } } Esto se solucionaría indicando que el valor  2.6  es de tipo  float  con una f al final  2.6f
El tipo Caracter:  Estos son de tipo  char , que almacena la representación de los caracteres (letras o números), un carácter esta almacenado en 16 bits, y siguen un estándar que es el Unicode. Los caracteres en Java se pueden especificar de forma normal o con secuencias de escape, utilizando la barra invertida "\" seguida de una letra
Ejemplo de secuencias de escape: \' ...................... comillas simples. \" ......................comillas dobles. \\ ......................barra invertida. \b ......................espacio en blanco. \ddd ..................carácter octal. \f .......................avance. \n ......................nueva línea. \r .......................retorno de carro. \t .......................tabulador. \uxxxx ..............carácter Unicoide
public class tipoCaracter {    public static void main(String[] arg)    {        char  valor, valor1, valor2;       valor = 'a '; // el literal de tipo carácter tiene que estar encerrado entre comillas simples.       valor1 = 65;     } }
El tipo booleano:  Este solo guarda dos valores: verdadero ( true ) o falso( false ), y no como ocurre en otros lenguajes que toman los valores 0 y 1. Generalmente su utilización es muy frecuente para determinar el flujo de los programas:
public class tipoBoolean {    public static void main(String[] arg)    {        boolean  valor1, valor2 ;       valor = true;        valor1 = false;      if ( valor1 ){         System.out .println("valor1 = verdadero");     } else {         System.out .println("valor1 = falso");     }    } }
Tabla tipos de datos:
Referenciados Los Arrays (Matrices): En Java, los Arrays pueden ser de cualquier tipo de dato, incluidos objetos.  Las variables del tipo Array se declaran utilizando  [] , ejemplo:  int[] fila; Para crear el objeto, se utiliza el operador  new  de la forma:  fila = new int[100];  Se puede declarar la variable y crear el objeto en la misma instrucción:  int[] fila = new int[100];
Tipos de datos string (las cadenas) java.lang.String:  A diferencia de C, String no es un arreglo de caracteres es un Objeto y ofrece diversas ayudas para manejar cadenas: -s.length(): Regresa el tamaño de una cadena -s.charAt(i): Regresa un caracter de una cadena -s.toLowerCase(): Convierte a minúsculas -s.toUpperCase(): Convierte a mayúsculas -s.trim(): Elimina espacios al inicio/final de la cadena.  -Entre otros.
Applets  Los applets son programas externos escritos en lenguaje JAVA, que permiten realizar operaciones multimedia sin incorporar nuevas directivas HTML. Los applets son muy variados, y cada uno de ellos realiza una tarea distinta.
La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador, incluso independientes del sistema operativo del ordenador donde se ejecutan. Por otra parte los applets de Java tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por ello que no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc.

Grupo1

  • 1.
    UNIVERSIDAD MILITAR NUEVAGRANADA PROGRAMACION III INTEGRANTES: GRUPO: 1 MEC. Jose Luis Lobo Andres Felipe Muñoz Camilo Linares Villegas TEMA: Java
  • 2.
  • 3.
    JAVA Paradigma Orientadoa objetos Apareció en: 1995 Diseñado por: Sun Microsystems Influido por: Objetive-C, C++, Smalltalk, Eiffel Ha influido a: C#, J#, JavaScript, PHP Sistema operativo: Multiplataforma Licencia de software: GNU GPL / Java Community Process
  • 4.
    Historia Set-top-box “caja que se coloca encima del televisor” Recepción televisión analógica-digital “ The Green Project” 1991 Green Team James Gosling
  • 5.
    Nombre Oak GreenJava JAVA J ames Gosling, A rthur V an Holf, A ndy Bechtolsheim Lista aleatoria de palabras J ust A nother V ague A cronym (“solo otro acrónimo ambiguo más”) Tipo de café (logo)
  • 6.
    Ideas Implementar unamáquina virtual y un lenguaje con estructura y sintaxis similar a C++ “ Write Once, Run Anywhere” “Escríbelo una vez, ejecútalo en cualquier lugar”
  • 7.
    Java Development KitJDK 1.0 23/01/1996 Primer lanzamiento JDK 1.1 19/02/1997 Adiciones: Clases internas JavaBeans (encapsular varios objetos en uno solo) JDBC [Java Database Connectivity] (libre de sistema operativo) RMI [Remote Method Invocation] (invoca un método de manera remota)
  • 8.
    Java 2 StandartEdition J2SE 1.2 08/12/1998 Nombre clave: Playground Adiciones: Adición palabras reservadas Reflexión (programa puede observar y modificar la estructura) Java IDL [Lenguaje de Descripción de Interfaz] (dos objetos interactúan sobre diferentes plataformas a través de una red)
  • 9.
    Java 2 StandartEdition J2SE 1.3 08/05/2000 Nombre clave: Kestrel Adiciones: RMI basado en CORBA JavaSound (efectos básicos y control de entrada y salida de sonido) JPDA [Java Platform Debugger Architecture] ( proporciona una infraestructura para depurar aplicaciones de J2SE)
  • 10.
    Java 2 StandartEdition J2SE 1.4 06/02/2002 Nombre clave: Merlín Adiciones: Adición palabras reservadas Java Web Start (utilizar aplicaciones que están en un servidor web) Seguridad integrada API I/O (lectura de formatos JPEG o PNG)
  • 11.
    Java 2 StandartEdition J2SE 5.0 (J2S3 1.5) 30/09/2004 Nombre clave: Tiger Adiciones: Plantillas (conversión de tipos ) Metadatos (permite a estructuras, clases-métodos, ser etiquetados con datos adicionales) Enumeraciones (enumpattern -> enum)
  • 12.
    Java Platform StandardEdition JAVA SE 6 11/12/2006 Nombre clave: Mustang Adiciones: Combinación de lenguajes (Java, PHP, Python, Ruby, JavaScript) Servicio Web Mejoras en la interfaz gráfica y rendimiento
  • 13.
    Java Platform StandardEdition Java SE 7 Nombre clave: Dolphin Adiciones: Superpaquetes Soporte para closures [clausuras] (función que es evaluada en un entorno conteniendo una o más variables dependientes de otro entorno. En algunos lenguajes, una clausura puede aparecer cuando una función está definida dentro de otra función, y la función más interna refiere a las variables locales de la función externa) Introducción de anotaciones estándar para detectar fallos en el software.
  • 14.
    No Oficiales NIO2.Java Module System. Java Kernel. Nueva API para el manejo de Días y Fechas, la cual reemplazara las antiguas clases Date y Calendar. Posibilidad de operar con clases BigDecimal usando operandos.
  • 15.
  • 16.
    API ¿Qué es? Es una Interfaz de Programación de Aplicaciones provista por los creadores del lenguaje Java, y que da a los programadores los medios para desarrollar aplicaciones Java.
  • 17.
    ¿Para que sirve?La API de Java provee de un conjunto de clases utilitarias para efectuar toda clase de tareas necesarias dentro de un programa. Organización: La API Java está organizada en paquetes lógicos, donde cada paquete contiene un conjunto de clases relacionadas semánticamente.
  • 18.
    Hay una granvariedad de API’s para realizar distintos tipos operaciones, las mas usuales son: JAXP Servlets Hibernate
  • 19.
    Entre los programadoresde Java se suele identificar cada una de las diferentes bibliotecas existentes como API's java. Cuando se construye un sistema informático este suele emplear diversas API`s.
  • 20.
    Maquina virtual (JVM)Es un ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (bytecode), el cual es generado por el compilador del lenguaje Java. Pieza fundamental de la plataforma Java.
  • 21.
    Actúa como un“puente” que entiende tanto el bytecode, como el sistema sobre el que se pretende ejecutar. Aporta portabilidad al lenguaje.
  • 22.
    Entorno de ejecuciónEl código debe compilarse de acuerdo a un formato binario portable estandarizado, normalmente con extensión .class. Puede componerse de múltiples clases, en donde cada clase tendrá asociada su propio archivo .class.
  • 23.
    Los archivos declase pueden empaquetarse juntos en un archivo con formato jar. El empaquetado evita la sobrecarga por la continua apertura y cierre de conexiones para cada uno de los fragmentos necesarios.
  • 24.
    El código resultantede la compilación es ejecutado por la JVM que lleva a cabo la emulación del conjunto de instrucciones mediante un compilador. Para cada dispositivo debe haber una JVM específica, ya sea un teléfono móvil, un PC con Windows XP, o un microondas.
  • 25.
    Verificador del bytecodeLa JVM “verifica” todo bytecode antes de ejecutarlo. Permite la protección de memoria sin necesidad de una unidad de Gestión de Memoria.
  • 26.
    Implementaciones de lamáquina virtual La edición J2SE tiene dos implementaciones de la máquina virtual: Java HotSpot Client VM Java HotSpot Server VM
  • 27.
  • 28.
    El tipo dedato de una variable indica los valores que la variable puede contener y las operaciones que se pueden realizar con ella. Podemos diferenciar los datos en Java en dos categorías de datos principales: los tipos primitivos y los tipos referenciados. Los tipos primitivos contienen un sólo valor e incluyen los tipos como: enteros, coma flotante, caracteres, etc. En Java tenemos los arrays, las clases y las interfaces como tipos de datos referenciados.
  • 29.
    Primitivos Enteros: Estos tipos son byte, short, int y long, que guardan el signo valor, estos representan un número y no pueden representar elementos fraccionarios.
  • 30.
    public class enteros{    public static void main(String[] arg)    {        byte midato1 = 1;        short midato2 = 100;        int midato3 = 10000;        long midato4 = 100000000;       System.out .println("midato = " + midato1);       ....    } }
  • 31.
    Números en comaflotante: Estos son float y double, nos permiten representar números decimales. Todos los literales de coma flotante son del tipo double salvo que se especifique lo contrario, por eso si se intenta asignar un literal en coma flotante a una variable de tipo float el compilador nos dará un error (tipos incompatibles):
  • 32.
    public class tipoDecinales{    public static void main(String[] arg)    {        float valor;       valor = 2.6;       System.out .println("Valor del dato= " + valor); //esto dara un error.    } } Esto se solucionaría indicando que el valor 2.6 es de tipo float con una f al final 2.6f
  • 33.
    El tipo Caracter: Estos son de tipo char , que almacena la representación de los caracteres (letras o números), un carácter esta almacenado en 16 bits, y siguen un estándar que es el Unicode. Los caracteres en Java se pueden especificar de forma normal o con secuencias de escape, utilizando la barra invertida "\" seguida de una letra
  • 34.
    Ejemplo de secuenciasde escape: \' ...................... comillas simples. \" ......................comillas dobles. \\ ......................barra invertida. \b ......................espacio en blanco. \ddd ..................carácter octal. \f .......................avance. \n ......................nueva línea. \r .......................retorno de carro. \t .......................tabulador. \uxxxx ..............carácter Unicoide
  • 35.
    public class tipoCaracter{    public static void main(String[] arg)    {        char valor, valor1, valor2;       valor = 'a '; // el literal de tipo carácter tiene que estar encerrado entre comillas simples.       valor1 = 65;    } }
  • 36.
    El tipo booleano: Este solo guarda dos valores: verdadero ( true ) o falso( false ), y no como ocurre en otros lenguajes que toman los valores 0 y 1. Generalmente su utilización es muy frecuente para determinar el flujo de los programas:
  • 37.
    public class tipoBoolean{    public static void main(String[] arg)    {        boolean valor1, valor2 ;       valor = true;       valor1 = false;     if ( valor1 ){         System.out .println("valor1 = verdadero");     } else {         System.out .println("valor1 = falso");     }    } }
  • 38.
  • 39.
    Referenciados Los Arrays(Matrices): En Java, los Arrays pueden ser de cualquier tipo de dato, incluidos objetos. Las variables del tipo Array se declaran utilizando [] , ejemplo: int[] fila; Para crear el objeto, se utiliza el operador new de la forma: fila = new int[100]; Se puede declarar la variable y crear el objeto en la misma instrucción: int[] fila = new int[100];
  • 40.
    Tipos de datosstring (las cadenas) java.lang.String: A diferencia de C, String no es un arreglo de caracteres es un Objeto y ofrece diversas ayudas para manejar cadenas: -s.length(): Regresa el tamaño de una cadena -s.charAt(i): Regresa un caracter de una cadena -s.toLowerCase(): Convierte a minúsculas -s.toUpperCase(): Convierte a mayúsculas -s.trim(): Elimina espacios al inicio/final de la cadena. -Entre otros.
  • 41.
    Applets Losapplets son programas externos escritos en lenguaje JAVA, que permiten realizar operaciones multimedia sin incorporar nuevas directivas HTML. Los applets son muy variados, y cada uno de ellos realiza una tarea distinta.
  • 42.
    La principal ventajade utilizar applets consiste en que son mucho menos dependientes del navegador, incluso independientes del sistema operativo del ordenador donde se ejecutan. Por otra parte los applets de Java tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página ni tienen acceso a ellos. Es por ello que no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc.