Características generales del lenguaje Java María Consuelo Franky 1 Temario ❶ Historia del desarrollo de Java ❷ Ventajas sobre otros lenguajes O.O. ❸ applets vs. aplicaciones ❹ Vistazo global a las características de Java ❺ Ambiente básico JDK Tema 2 Java - CincoSOFT 2 1. Historia del desarrollo de Java Tema 2 Java - CincoSOFT 3 Origen de Java Proyecto Green de la SUN (1991) para desarrollar software controlador de electrodomésticos (dirigido por James Gosling) ★ ★ ★ ★ ★ ★ ★ se requería un lenguaje compacto, confiable, OO, independiente de la plataforma C++ fue descartado (por ser complejo y no confiable) ==> se definió Java en 1993 se quiso incorporar la tecnología de video por demanda en 1993 apareció NCSA Mosaic 1.0 ==> de 1993 - 1995 Java se redefinió para Internet actualmente SUN (FirstPerson Inc.) ha seguido trabajando en aplicar Java como controlador de televisión interactiva y de otros electrodomésticos Java se popularizó como lenguaje general para aplicaciones modernas 2 plataformas dominantes para desarrollar aplicaciones empresariales: Java EE (usa lenguaje Java), .NET (usa lenguaje C# principalmente) 4 2. Ventajas sobre otros lenguajes O.O. Tema 2 Java - CincoSOFT 5 Java tiene las virtudes de C++ pero no sus defectos: – Como C++, Java es compacto, expresivo, OO, multithreading – A diferencia de C++ : ❋ Java obliga a usar el paradigma OO ❋ no soporta apuntadores ❋ recolección automática de basura ❋ no permite variables globales ni funciones sueltas ❋ ofrece objetos arreglos de dimensión arbitraria ❋ menos alternativas en tipos y mayor chequeo de tipos ❋ no hay preprocesamiento (#include) : dinámicamente se importan las clases necesarias ❋ código portable (independiente de cualquier plataforma) ❋ interfaz universal ❋ Menores costos en desarrollo y mantenimiento Tema 2 Java - CincoSOFT 6 Portabilidad de Java: se compila una vez y se ejecuta en cualquier plataforma programa.java compilador javac programa.class en código bytecode para la máquina JVM (Java Virtual Machine) JRTS (Java Run-Time System) en el browser de la plataforma 1 interpretación del programa.class en la plataforma 1 Tema 2 Java - CincoSOFT JRTS para plataforma 2 JIT (Just-In-Time compiler) programa.exe en código nativo de la plataforma 2 ejecución ejecución del programa.exe en la plataforma 2 7 Seguridad ofrecida por Java: – el bytecode Java es neutral respecto a las arquitecturas => no puede explotarlas – fuerte chequeo de tipos y manejo de excepciones – ausencia de apuntadores => no hay referencias inválidas de memoria – el JRTS (Java Run Time System) : ❉ chequea que el bytecode esté bien construido ❉ separa clases del JRTS || clases del usuario || clases que vienen por la red – el web browser pone barreras de seguridad a las clases que vienen por la red en forma de applets (en principio, no pueden consultar ni modificar archivos del escritorio) – mecanismos avanzados ofrecidos por Java: ❉ encripción de datos antes de transmitirlos ❉ generación de llaves y de firmas digitales para un archivo applet (javakey) ❉ definición de políticas de seguridad basadas en la auntenticación de applets Tema 2 Java - CincoSOFT 8 3. Applets versus aplicaciones Java Tema 2 Java - CincoSOFT 9 escritorio con browser y disco servidor de BD y de recursos aplicación 1 Java BD applet servidor Web y de Aplicaciones aplicación 3 Java aplicación 2 Java Interacción de un applet o de una aplicación Java con múltiples servidores aplicación 4 JAVA BD Tema 2 Java - CincoSOFT servidor de BD y de recursos 10 Usos de los Applets y de las Aplicaciones Java Los applets permiten : ★ ★ ★ ★ ★ Mostrar información al interior de una empresa Mostrar al público información sobre productos servir de “Front end” para las aplicaciones operativas de la empresa Comercio electrónico Traer las aplicaciones de oficina a los escritorios livianos Las aplicaciones Java : ★ ★ ★ ★ Residen en escritorios pesados (de la empresa) o en los servidores Pueden interactuar con Bases de Datos o con otras aplicaciones JAVA de otros servidores Pueden realizar servicios de procesamiento para los applets Pueden interactuar con aplicaciones antiguas o heterogéneas Tema 2 Java - CincoSOFT 11 45. Ambiente básico JDK (Java Development Kit) Tema 2 Java - CincoSOFT 12 Instalación, directorios y configuración del JDK : ★ sitio internet donde se obtiene última versión del JDK (actualmente JDK 1.6): http://java.sun.com/products/jdk/1.6 ★ contenido del directorio jdk resultado de la instalación: jdk1.6\bin : herramientas de desarrollo jdk1.6\jre : soporte de ejecución básico (MVJ) jdk1.6\lib : librerías de soporte jdk1.6\demo : ejemplos jdk1.6\include: soporte para programar métodos nativos. ★ tutorial oficial de la Sun: http://java.sun.com/docs/books/tutorial/ ★ CLASSPATH: variable que especifica dónde buscar las clases de JAVA durante tiempo de compilación y ejecución ej de valor: C:/jdk/lib;C:/misclases Tema 2 Java - CincoSOFT 13 Principales paquetes que ofrecen las librerías del JDK ■ clase: modela un tipo de objeto ■ paquete: conjunto de clases ■ paquetes utilitarios: ✿ java.lang : clases básicas (importado por defecto) ✿ java.applet : manejo de applets ✿ java.io : manejo de E/S sobre archivos ✿ java.net : servicios de conectividad (sockets TCP/IP, URL) ✿ java.util : manejo de objetos flexibles: Lista, Vector, Mapa.. ✿ java.awt : manejo de objetos de interacción gráfica ✿ java.sql : interacción con Bases de Datos (JDBC) ✿ java.rmi: interacción con objetos remotos (RMI) ✿ java.beans : manejo de componentes ✿ java.security : servicios de seguridad ✿ y muchos más Tema 2 Java - CincoSOFT 14 Principales herramientas del JDK : javac : compila applets o aplicaciones java javac [opciones] MiClase.java genera un archivo .class por cada clase definida en MiClase.java otro ej: javac javeriana\edu\co\miproy\MiClase.java nota: importa la diferencia entre mayúsculas y minúsculas en el nombre del archivo principales opciones : -verbose (da información al compilar) -d directorio (donde se quieren dejar los .class) -classpath ruta (donde buscar las clases, en lugar de lo que indique CLASSPATH) Tema 2 Java - CincoSOFT 15 ✿ java : interpreta (ejecuta) una aplicación java java [opciones] Miclase [argumentos] debe existir el archivo Miclase.class otro ej: java javeriana.edu.co.miproy.MiClase principales opciones : -verbose (da información sobre clases cargadas) -classpath ruta (donde buscar las clases, en lugar de lo que indique CLASSPATH) Tema 2 Java - CincoSOFT 16 ✿ javadoc : genera la documentación de una aplicación java javadoc javeriana\edu\co\miproy\*.java muchas opciones : -visibilidad -paquetes a incluir o excluir -apariencia Tema 2 Java - CincoSOFT 17 ✿ appletviewer : interpreta un applet java sin requerir ningún navegador appletviewer [opciones] mihoja.html appletviewer [opciones] http://host/dir/mihoja.html mihoja.html indica el archivo Miapplet.class que quiere invocarse principal opción : -debug (permite hacer depuración con jdb) Tema 2 Java - CincoSOFT 18 ✿ jdb : herramienta de depuración ✿ javap : analiza archivos java informando cúales son sus clases, métodos y atributos ✿ javadoc : herramienta que genera documentación HTML a partir de una aplicación o applet java ✿ javah : herramienta que genera archivos .h en lenguaje C para la interacción entre aplicaciones java y aplicaciones C ✿ rmic : herramienta que genera módulos stub y skeleton para la interacción RMI entre objetos java distribuidos ✿ jar : comprime o descomprime archivos java ✿ javaKey : genera firma digital para un applet ✿ etc..... Tema 2 Java - CincoSOFT 19 Ejercicio “Hola Mundo” ✿ Desarrollar con JDK una aplicación Hola1.java que imprima por la salida estándar, el mensaje : “Hola Mundo: esta es la primera aplicacion java de Fulanito de Tal” la clase debe llamarse Hola1.class archivos .class deben quedar en subdirectorio clases ejemplo de código: class Hola1 { public static void main (String[] args) { System.out.println (“Hola mundo...”); } } Tema 2 Java - CincoSOFT 20 Parámetros para una aplicación java ✿ En la línea de comandos de java pueden ir argumentos: java miclase cadena1 cadena2 .... ✿ El método main tiene como parámetro una arreglo de cadenas : class miclase { public static void main(String[] args ) { .... } } ✿ args.length es el número n de argumentos ✿ args[i] es la cadena usada como argumento i-ésimo (se cuenta i desde 0 hasta n-1) Tema 2 Java - CincoSOFT 21 Ejercicio “EcoJDK” ✿ Desarrollar con JDK una aplicación Eco1.java que imprima por la salida estándar los argumentos de la línea de comandos, imprimiendo uno por línea: la clase debe llamarse Eco1.class archivos .class deben quedar en subdirectorio clases debe chequear que haya argumentos Tema 2 Java - CincoSOFT 22