Ediciones de JAVA Caracterstica del lenguaje Java. Evolucion de Fundamentos de Java Caracterstica del lenguaje Java. Evolucion de Java SE Escribir, compilar y ejecutar aplicaciones Java. La mquina virtual de Java. Bloques de cdigo, sentencias y comentarios en Bloques de cdigo, sentencias y comentarios en Java. Identificadores. Palabras claves en Java. El lenguaje de programacin Java Simple: Java tiene un conciso y cohesivo conjunto de caractersticas que lo hacen fcil de aprender y utilizar Orientado a Objetos: Java posee las capacidades de los lenguajes orientados a objetos (herencia, polimorfismo, etc) Distribuido: Java fue diseado para entornos distribuidos e internet Multihilo: Java provee soporte para programacin multithreaded. Portable: Java es neutral a la arquitectura. Portable: Java es neutral a la arquitectura. Alto Rendimiento: Bytecode estn optimizados para una rpida ejecucin. Caracterstica del lenguaje Java Es sencillo programar. Resuelve carencias como las relativas a la aritmtica de punteros y la gestin de la memoria. punteros y la gestin de la memoria. Es orientado a objetos. Es interpretado (genera cdigo directamente en bytescodes que luego la maquina virtual interpreta) Portabilidad del cdigo: permite escribir cdigo que puede ejecutarse en diferentes sistemas operativos sobre cualquier JVM. JVM. Los programas ejecutan mltiples procesos de forma simultnea. Java soporta sincronizacin de mltiples hilos de ejecucin (multithreading) a nivel de lenguaje. Ediciones de JAVA Java SE (Java Standard Edition) Provee todo lo necesario para la creacin de aplicaciones y Provee todo lo necesario para la creacin de aplicaciones y applets. Java EE (Java Enterprise Edition) Permite crear aplicaciones para empresas que proveen servicios por el Web. Java ME (Java Micro Edition) Permite crear aplicaciones para productos como telfonos celulares y enseres elctricos. Evolucin de JAVA SE JDK 1.0 (January 23, 1996) JDK 1.1 (February 19, 1997) JDK 1.1 (February 19, 1997) J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7 (July 28, 2011) Escribir, compilar y ejecutar aplicaciones Java javac: compila un archivo de codigo fuente Java, *.java. Es parte de la JDK. java ejecuta un binario ejecutable en formato java ejecuta un binario ejecutable en formato ByteCodes prescindiendo de la extension .class. Es parte de JDK y JRE jar - el empaquetador de clases y archivos de Java, asi se contruye un unico archivo que contiene a la aplicacion. Es parte slo de JDK. Jdb - busca y corrige bugs en programas Java. Jdb - busca y corrige bugs en programas Java. Javap - desensambla archivos compilados de Java (.class). Javadoc - genera documentacin en formato HTML a partir del cdigo fuente Java. El cdigo de origen Java se almacena como texto en un archivo .java. El archivo .java se compila en archivos .class. El archivo .java se compila en archivos .class. Un archivo .class contiene cdigos de byte Java (instrucciones). Los cdigos de byte se interpretan en tiempo de ejecucin. El archivo .class de Java es el cdigo ejecutable. Compilar Movie.java JVM Programa en ejecucin Movie.class (javac) (java) La mquina virtual de Java Sistema operativo JVM Aplicacin La mquina virtual de Java Reservar espacio en memoria para los objetos creados Liberar la memoria no usada (garbage collection). Asignar variables Asignar variables Llamar al sistema husped para ciertas funciones, como los accesos a los dispositivos Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java Las referencias a arrays son verificadas en el momento de la ejecucin Las referencias a arrays son verificadas en el momento de la ejecucin del programa No hay manera de manipular de forma directa los punteros La JVM gestiona automticamente el uso de la memoria No se permiten realizar ciertas conversiones (casting) entre distintos tiposde datos. Bloques de cdigo, sentencias y comentarios en Java Bloques o grupos de sentencias En el lenguaje Java, una sentencia se compone de una o varias lneas de cdigo que se cierran con un signo de punto y coma (;). de cdigo que se cierran con un signo de punto y coma (;). Ejemplo totals = a + b + c + d + e + f; Equivale a totals = a + b + c + d + e + f; Bloques de cdigo, sentencias y comentarios en Java // sentencia en un bloque { x = y + 1; x = y + 1; y = x + 1; } // definicin de una clase contenida en un bloque public class MyDate { private int day; private int month; private int year; } // un bloque de sentencias puede estar anidado en // otro bloque while ( i < large ) { while ( i < large ) { a = a + i; // bloque anidado if ( a == max ) { b = b + a; a = 0; } i = i + 1; } Bloques de cdigo, sentencias y comentarios en Java Comentarios // comentario en una lnea // comentario en una lnea /* comentario en una * o varias lneas */ /** el comentario de documentacin * tambin puede abarcar ms de una lnea */ Identificadores El primer carcter identificador debe de ser Una letra mayscula (A-Z) Una letra minscula (az) Una letra minscula (az) El carcter guin bajo (_) El carcter dlar ($) El segundo carcter identificador debe de ser Cualquier carcter de la lista anterior Caracteres numricos (09) Caracteres numricos (09) Nombres de clases deberan comenzar con una letra mayscula Nombres de variable deberan comenzar con una letra minscula. Palabras claves en Java Abstract default if private throw Boolean do implements protected throws Break double import public transient Byte else instanceof return try case extends int short void catch final interface static volatile char finally long super whle class float native switch ---- class float native switch ---- Const For New Synchronized ---- continue Goto Package This ---- cast future generic inner operator outer rest var Palabras claves en Java Clasificacion Tipos de datos: boolean, float, double, int, char Sentencias condicionales: if, else, switch Sentencias condicionales: if, else, switch Sentencias iterativas: for, do, while, continue Tratamiento de las excepciones: try, catch, finally, throw Estructura de datos: class, interface, implements, extends Modificadores y control de acceso: public, private, protected, transient protected, transient Otras: super, null, this. Palabras claves en Java Consideraciones importantes Los literales true, false y null se escriben en Los literales true, false y null se escriben en minsculas, no en maysculas como en el lenguaje C++. Tcnicamente son literales, no palabras clave, pero esta distincin es puramente acadmica. No existe ningn operador sizeof; no puede realizarse el acceso directo a la memoria, por lo realizarse el acceso directo a la memoria, por lo que la informacin carecera de valor. Las palabras clave goto y const no se utilizan en programacin Java. Bloque de cdigo Un bloque de cdigo es una conjunto de sentencias que estn entre llaves ({}). sentencias que estn entre llaves ({}). Comentarios En Java hay tres tipos de comentarios Errores Errores producidos durante la compilacin javac: Command not found Errores producidos durante la ejecucin javac: Command not found Robot.java:4:cannot resolve symbol symbol : method printl (java.lang.String) location: class java.io.PrintStream System.out.printl("hola"); ^ EjecutarR.java:4: Public class EjecutarRobot must be defined in a file called "EjecutarRobot.java". Errores producidos durante la ejecucin Can't find class EjecutarRobot Exception in thread "main" java.lang.NoSuchMethodError: main