Curso de Java -...

29
Origen y Evoluci´on Entorno de Trabajo Curso de Java Jaime Fern´ andez Mart´ ın Curso INEM 02830. Programaci´on en Java Marzo 2010

Transcript of Curso de Java -...

Origen y Evolucion Entorno de Trabajo

Curso de Java

Jaime Fernandez Martın

Curso INEM 02830. Programacion en Java

Marzo 2010

Origen y Evolucion Entorno de Trabajo

Indice

1 Origen y Evolucion

2 Entorno de Trabajo

Origen y Evolucion Entorno de Trabajo

Indice

1 Origen y EvolucionIntroduccion a los computadoresOrıgenesEvolucionCodificacion, Compilacion y Ejecucion

2 Entorno de Trabajo

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Estructura de un ordenador

Dispositivos de entrada/salida

Sirve para la interaccion hombre-maquina

Entrada: teclado, raton, escaner, microfono, webcam, ..

Salida: monitor, impresora, altavoces, ...

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Estructura de un ordenador

Memoria principal

Conjunto de celdas en una tabla

Guarda datos (entrada, salida y procesados) e instrucciones(programas)

De acceso rapido

Tipos: RAM y ROM

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Estructura de un ordenador

Unidad Centra del Procesos (CPU)

Formada por:

Unidad Aritmetico Logica (ALU): Para operaciones ...

Aritmeticas (suma, resta,...)Logicas (AND, OR,...)De comparacion

Unidad de Control (UC): Lleva el control de la ejecucion delprograma. Da las ordenes para traer datos de memoria yprocesarlos

Registros: Almacenes temporales de la informacion. Solo losutiliza la UC

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Estructura de un ordenador

Von Neumann

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Tipos de lenguajes de programacion

Lenguaje Maquina

Codigo binario

Fuertemente relacionado con el hardware

Comprensible para una maquina ...

... pero imposible para una persona

00111010010011110001110100011

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Tipos de lenguajes de programacion

Lenguaje Ensamblador

Lenguaje de mas alto (aun ası bajo) nivel, muy cercano a lamanipulacion del hardware

Utilizado en los principios del desarrollo software

Se traduce a lenguaje maquina con ensambladores

Mas rapido de ejecutar y ocupa poco en memoria (menosinstrucciones)

Suma de dos numeros

MOV R1, 10MOV R2, 10ADD R1, R2ST #0014, R1

Origen y Evolucion Entorno de Trabajo

Introduccion a los computadores

Tipos de lenguajes de programacion

Lenguaje de Alto nivel

Comunmente conocido como lenguaje de programacion

Mas cercano al lenguaje humano (semantica mas compleja),notacion matematica

Los compiladores transforman a lenguaje maquina

C, C++, Java, Python, ...

r1 = 10 + 10;

Origen y Evolucion Entorno de Trabajo

Orıgenes

Sobre C/C++

C

Aparece 1972 por Dennis M. Ritchie en los Laboratorios Bell

De alto nivel, pero con muchas caracterısticas de bajo nivel

lenguaje orientado a la implementacion de sistemas operativos(Unix), sistemas empotrados, drivers de dispositivos, ...

Muy eficiente

Portable debido a la facilidad de desarrollar compiladores

C++

Bjarne Stroustrup. 1979

Extension de C con orientacion a objetos

Origen y Evolucion Entorno de Trabajo

Orıgenes

Los orıgenes

Historia

Surge en la decada de los 90 de la mano de James Gosling

Inicialmente llamado Oak

Desarrollado por ingenieros de Sun Microsystems paradispositivos electronicos

Motivacion

Problemas con la depuracion de programas en C++

La aparicion de un chip mas barato supone su implantacion enla cadena de fabricacion −→ recompilar la aplicacion

Origen y Evolucion Entorno de Trabajo

Orıgenes

Los orıgenes

Ideas Principales

Con la filosofıa “Escribirlo una vez, ejecutarlo en cualquierparte“. Permitir la ejecucion de un mismo programa enmultiples plataformas (WindowsXP/Vista/7, Unix, MacOS,Solaris, ...)

Lenguaje orientado a objetos

Soporte para trabajo en red

Ejecucion de codigo en sistemas remotos con seguridad

Origen y Evolucion Entorno de Trabajo

Orıgenes

Java

Caracterısticas

Lenguaje simple y sencillo basado en C++

De mas alto nivel. Abstraccion de ciertas acciones (Garbagecollector)

Incorpora un amplio conjunto de bibliotecas

Mecanismos de comunicacion a traves de la red

Control de errores (Gestion automatica de la memoria, nodefine tipos, sin structs, ...)

Seguridad (Acceso ilegal a memoria, comprobaciones previas ala ejecucion, impide la apertura de ficheros en la maquinalocal, ...)

Origen y Evolucion Entorno de Trabajo

Orıgenes

Java

Caracterısticas

Portable a cualquier arquitectura con JVM soportada

De los primeros lenguajes dinamicos en la web

Mas lento

Licencia GNU General Public License

Origen y Evolucion Entorno de Trabajo

Evolucion

Evolucion I

Enero de 1996 aparece Java con JDK 1.0

Enero de 1997 aparece una nueva version JDK 1.1 con:

Reestructuracion de AWT (GUI)Clases internasJavaBeansJDBC (Java Database Connectivity)RMI (Remote Method Invocation)

Diciembre de 1998 aparece J2SE 1.2. Java 2

Aparece tambien J2EE y J2ME. Diferentes conjuntos paquetesMecanismos de reflexion. Dinamismo del codigoSwing se incorpora a las clases basicasA la JVM se le incorpora un compilador JIT (Just In Time)Java Plug-in. Conectividad entre Java y navegadores webJava IDL (Interface Description Language), para interoperarcon CORBA

Origen y Evolucion Entorno de Trabajo

Evolucion

Evolucion II

Mayo de 2000 aparece J2SE 1.3

Adaptacion de RMI basado en CORBAJavaSound. Manipulacion de la entrada y salida de audioJNDI (Java Naming and Directory Interface)JPDA (Java Plataform Debugger Architecture)

Febrero de 2002 aparece J2SE 1.4

Manejo de expresiones regularesNIO (New Input/Output) no bloqueanteAPI para la lectura y escritura de imagenesParseador de XML integradoExtensiones criptografıa (JCE, JSSE, JAAS)Java Web Start. Descarga y ejecucion de la ultima version deaplicaciones

Origen y Evolucion Entorno de Trabajo

Evolucion

Evolucion III

Septiembre de 2004 aparece J2SE 5.0

PlantillasMetaAutoboxing/unboxing. Conversiones automaticas entre tiposprimitivosEnumeracionesVarargs. Numero de argumentos variable

Diciemnre de 2006 aparece Java SE 6

APIs para la combinacion de Java con lenguajes dinamicostipo PHP, Python, Ruby y JavaScriptInterprete de JavaScript para MozillaCliente de Servicios WebMejoras en la interfaz grafica y en rendimiento

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Variables PATH y CLASSPATH

Variable PATH

Es una variable de entorno

Almacena informacion de la ubicacion de los programas

SO puede ejecutar programas a traves de la lınea de comandos

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Archivos de programa\Java\jdk1.6.0_18\bin

Variable CLASSPATH

Es una variable de entorno

Almacena informacion de la ubicacion de las bibliotecas yclases Java

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Codificacion

// Esto es un comentario de una linea/∗

Esto es un comenta r i o demu l t i p l e s l i n e a s

∗/// Clase holaMundopub l i c c l a s s holaMundo {

/∗ El metodo main es e l punto de comienzo d e l programa∗/

pub l i c s t a t i c vo id main ( S t r i n g [ ] a r g s ) {

System . out . p r i n t l n ( ” Hola Mundo ! ” ) ;

}

}

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Compilacion y ejecucion

Compilacion

Proceso por el cual se traducede un lenguaje comprensible porun ser humano a otrocomprensible por una maquina

Compilador, la herramientatraductora

Deteccion de errores

Ejecucion

Puesta en funcionamiento de unprograma o aplicacion

Codificación

CompiladorPowerPC

Compilación

Ejecución

Solaris PowerPC x86

CompiladorSolaris

Compiladorx86

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Elementos de Java

Archivos

Los archivos con extension *.java contienen el codigo escritocon sintaxis Java

Los archivos *.class contienen el ByteCode de Java.Generados por javac e interpretados por la JVM

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

En el caso de Java

Componentes

javac, el compilador deJava

generacion del ByteCode

Cada JVM es diferente enfuncion de la plataforma

Codificación

javac

Compilación

Ejecución

.java

.class

Solaris

JVM

PowerPC

JVM

x86

JVM

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Ejercicio

Instalacion del JDK

Incluir en el PATH los binarios de la JDK

Propiedades de MiPC > Opciones Avanzadas > Variables deEntornoEn variables del sistema, variable PATH

Descargar programa de ejemplo

Utilizacion de la consola de windows

Ejecutar > cmdAplicaciones > Accesorios > Sımbolo de sistema

Movimiento por directorios con ’cd’Cambiar de unidad de disco: Letra de la unidad seguido de ’:’Listar archivos en un directorio con ’dir’El tabulador ayuda a autocompletar

Origen y Evolucion Entorno de Trabajo

Codificacion, Compilacion y Ejecucion

Ejercicio

Compilar con javac

javac holaMundo.java

Ejecutar con java

java holaMundo

Origen y Evolucion Entorno de Trabajo

Indice

1 Origen y Evolucion

2 Entorno de TrabajoNetBeans

Origen y Evolucion Entorno de Trabajo

NetBeans

Sobre NetBeans

¿Que es?

Es un IDE (Integrated Development Enviorment)

Plataforma de ejecucion de aplicaciones

Para multiples lenguajes: Java, C++, PHP, ...

Multitud de plugins (OpenSwig, iReport, ...)

Gratuito. Licencia GPL

Web: netbeans.org

Origen y Evolucion Entorno de Trabajo

NetBeans

Instalacion

Software necesario

Instalar en el siguiente orden:

SDK 1.6

Netbeans 6.8

Atencion

La instalacion debe hacerse en la unidad D

Origen y Evolucion Entorno de Trabajo

NetBeans

Acciones

Algunas acciones muy utilizadas

Crear un nuevo proyecto (Seleccionar una ruta en D)

Gestion de las ventanas del entorno

Area de proyectos, vista del sistema de ficherosArea de edicionConsola de compilacion y ejecucionVariable CLASSPATH en las propiedades del proyectoGuardar en otra ubicacion un ficheroImportar un proyectoEstablecer un proyecto como principal

Compilacion y ejecucion del holaMundo.java (codificarlo)

Exportar el fichero a otra ubicacion