Anda di halaman 1dari 35

Fundamentos Fundamentos

de de de de
programacin programacin p g p g
GExCALL GExCALL Formacin Formacin
http://gexcall.unex.es/formacion http://gexcall.unex.es/formacion
Objetivos del curso Objetivos del curso
El objetivo general es el de formar al alumno en la El objetivo general es el de formar al alumno en la
programacin de aplicaciones con el lenguaje Java.
Ser el primero de una serie temtica de cursos p
alrededor de la tecnologa Java y arquitecturas
J2EE.
El alumno conseguir aqu los conocimientos
necesarios para desarrollar pequeas aplicaciones
usando el lenguaje Java y adquirir las bases para
adquirir ms conocimientos necesarios para adquirir ms conocimientos necesarios para
aplicaciones ms complejas
2
Objetivos especficos del curso Objetivos especficos del curso
Adquirir conocimientos bsicos sobre el Adquirir conocimientos bsicos sobre el
lenguaje de programacin Java
Dominar la sintaxis del lenguaje
Conocer el entorno de desarrollo Eclipse Conocer el entorno de desarrollo Eclipse
Poder compilar, ejecutar, trazar e instalar
l J aplicaciones Java
Conocer a grandes rasgos la familia de g g
soluciones tecnolgicas J2EE
3
Programa Programa
Cmo empezar Cmo empezar
Aprender los principios de lenguaje Java
Cl Obj Clases y Objetos
Programacin Orientada a Objetos (OOP)
Caractersticas avanzadas del lenguaje Java
IDE Eclipse p
Colecciones marco
Programacin GUI (Swing) Programacin GUI (Swing)
Lectura Escritura
4
Aula virtual y datos de Aula virtual y datos de
contacto contacto contacto contacto
http://gexcall unex es/formacion/cursos/ http://gexcall.unex.es/formacion/cursos/
mgaspar@unex.es
Para poder optar al certificado de Para poder optar al certificado de
aprovechamiento es necesario asistir al
menos a un 80% de horas presenciales y p y
conseguir una evaluacin positiva.
La evaluacin consistir en la realizacin de
una prctica final. Sobre esta prctica, se
realizar una prueba final de conocimientos.
Esta prueba ser realizada in situ en Esta prueba ser realizada in-situ en
laboratorio y tendr una duracin de 2
horas. horas.
5
Horario Horario
2/3 Viernes 2/3. Viernes
3/3. Sbado
9/3 Viernes 9/3. Viernes
10/3. Sbado
16/3 Viernes 16/3. Viernes
17/4. Sbado
23/3 Viernes 23/3. Viernes
(Tardes de los Viernes y maanas de los (Tardes de los Viernes y maanas de los
Sbados)
6
1.1. PRINCIPIOS DEL 1.1. PRINCIPIOS DEL
LENGUAJE LENGUAJE LENGUAJE LENGUAJE
Objetivos Objetivos
Al final de la leccin el estudiante debe Al final de la leccin, el estudiante debe
ser capaz de:
Describir las caractersticas de la tecnologa
Java, como el de Java de mquina virtual (JVM),
recoleccin de basura (GC) y el cdigo de
seguridad
Describir las distintas fases de un programa
en Java J
8
Java Antecedentes: Historia Java Antecedentes: Historia
Java
fue creado en 1991 por James Gosling y sus fue creado en 1991 por James Gosling y sus
colaboradores de Sun Microsystems.
Inicialmente llamado Oak, en honor de los rboles
f d l d l d h d G li S fuera de la ventana del despacho de Gosling. Se
descart por cuestiones de propiedad intelectual.
Se supone que el nombre definitivo, Java, aparece Se supone que el nombre definitivo, Java, aparece
mientras tomaban caf (Java es nombre de un tipo de
caf, originario de Asia), aunque otros afirman que el
nombre deriva de las siglas de James Gosling Arthur Van nombre deriva de las siglas de James Gosling, Arthur Van
Hoff, y Andy Bechtolsheim.
9
Java Antecedentes: Historia Java Antecedentes: Historia
La motivacin original para Java
La necesidad de una plataforma independiente del lenguaje que
puede ser embebido en distintos productos electrnicos de
consumo, como las tostadoras y los refrigeradores. y g
Uno de los primeros proyectos desarrollados usando Java
en 1992 fue Un hand-held con control remoto llamado Star
77.
Casi al mismo tiempo, la World Wide Web y la Internet van
ganando popularidad. Gosling se dio cuenta de que Java
d l I podra utilizarse para programacin para Internet.
10
Java Antecedentes: Historia Java Antecedentes: Historia
Patrick Naughton procedi a la construccin de Java que
funcionaba desde un prototipo de navegador El 29 de funcionaba desde un prototipo de navegador. El 29 de
septiembre de 1994 se termina el desarrollo del
prototipo de HotJava. Se hace la demostracin a los
ejecutivos de Sun y esta vez se acepta el proyecto ejecutivos de Sun y esta vez, se acepta el proyecto.
Una de las caractersticas de HotJava fue su soporte para
los "applets. pp
El 23 de mayo de 1995, en la conferencia SunWorld
`95, John Gage, de Sun Microsystems, y Marc Andreessen,
cofundador y vicepresidente de Netscape anunciaban la cofundador y vicepresidente de Netscape, anunciaban la
versin alpha de Java, iba a ser incorporado en Netscape
Navigator, el navegador mas utilizado de Internet.
11
Qu es la tecnologa Java Qu es la tecnologa Java Qu es la tecnologa Java Qu es la tecnologa Java
La tecnologa java es: La tecnologa java es:
Un lenguaje de programacin
Un entorno de desarrollo Un entorno de desarrollo
Un entorno de aplicacin
U t d d li Un entorno de despliegue
12
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Lenguaje de programacin Lenguaje de programacin
Como un lenguaje de programacin Java
puede crear todo tipo de aplicaciones que puede crear todo tipo de aplicaciones que
puedas crear con otro lenguaje de
i programacin
13
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Entorno de desarrollo Entorno de desarrollo
Como un entorno de desarrollo la Como un entorno de desarrollo, la
tecnologa Java proporciona con una gran
suite de herramientas:
Un compilador (javac)
Un intrprete (java) p (j )
Un generador de documentacin (javadoc)
Una herramienta de empaquetamiento de Una herramienta de empaquetamiento de
archivos de clase (jar)
y mucho ms ... y
14
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Aplicacin y Entorno de despliegue p y p g
Las aplicaciones de la tecnologa Java son tpicamente de propsito
general, programas que se ejecutan en cualquier mquina en la que g , p g q j q q q
el entorno de ejecucin de Java (JRE) est instalado.
Hay dos entornos de despliegue principales: Hay dos entornos de despliegue principales:
El JRE suministrados por el Java 2 Software Development Kit (SDK)
contiene el conjunto completo de archivos de clase de toda la tecnologa
de paquetes Java, que incluye clases de lenguaje de base, componentes p q J , q y g j , p
de interfaz grfica de usuario, clases matemticas, y as sucesivamente.
El otro entorno de despliegue principal se encuentra en su navegador
web. La mayora de los navegadores comerciales suministran un
intrprete de tecnologa java y del entorno de ejecucin intrprete de tecnologa java y del entorno de ejecucin.
15
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Aplicacin y Entorno de despliegue Plataforma J2SE - JDK Aplicacin y Entorno de despliegue Plataforma J2SE JDK
16
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Base para arquitecturas ms complejas, como Spring Base para arquitecturas ms complejas, como Spring
17
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Base para compiladores compatibles, como Dalvik Base para compiladores compatibles, como Dalvik
18
Qu ediciones de Java tenemos a Qu ediciones de Java tenemos a
nuestra disposicin? nuestra disposicin?
Existen varias Ediciones de Java cada una Existen varias Ediciones de Java, cada una
de ellas diseada para cierto ambiente en
particular. Estas ediciones son:
Java Standard Edition (Java SE) J (J )
Java Micro Edition (Java ME)
Java Entreprise Edition (Java EE) Java Entreprise Edition (Java EE)
Java Card
19
Java Standard Java Standard Edition Edition Java Standard Java Standard Edition Edition
Se emplea en PCs (desktops y laptops). Se emplea en PCs (desktops y laptops).
Se le conoce tambin como Java Desktop (escritorio)
es la versin que tienes que instalar para poder
C programar en Java en tu PC, aunque tus programas
estn destinados para alguna de las otras ediciones.
Java SE (conocido anteriormente hasta la versin 5 0 Java SE (conocido anteriormente hasta la versin 5.0
como Plataforma Java 2, Standard Edition o J2SE),
es una coleccin de APIs del lenguaje de programacin Java
utiles para muchos programas de la Plataforma Java utiles para muchos programas de la Plataforma Java.
La Plataforma Java 2, Enterprise Edition incluye todas las
clases en el Java SE, adems de algunas de las cuales son
til j t id b tiles para programas que se ejecutan en servidores sobre
workstations.
20
Java Micro Java Micro Edition Edition Java Micro Java Micro Edition Edition
Java Micro Edition, o Java ME (anteriormente J2ME), Java Micro Edition, o Java ME (anteriormente J2ME),
es una coleccin de APIs en Java orientadas a
productos de consumo como PDAs, telfonos
mviles o electrodomsticos mviles o electrodomsticos.
Es una versin recortada del Java SE con ciertas
extensiones enfocadas a las necesidades particulares
d i d di i i de esos tipos de dispositivos.
Se ha convertido en una buena opcin para crear
juegos en telfonos mviles debido a que se puede juegos en telfonos mviles debido a que se puede
emular en un PC durante la fase de desarrollo y luego
subirlos fcilmente al telfono.
Al tili t l J l d ll d Al utilizar tecnologas Java el desarrollo de
aplicaciones o videojuegos con estas APIs resulta
bastante econmico de portar a otros dispositivos.
21
Java Enterprise Java Enterprise Edition Edition Java Enterprise Java Enterprise Edition Edition
Se emplea para hacer aplicaciones. Incluye a toda la Standard
Edition y muchas, muchas ms extensiones.
diseadas por Sun , permiten la creacin de aplicaciones p , p p
empresariales,
acceso a base de datos (JDBC)
utilizacin de directorios distribuidos (JNDI) (J )
acceso a mtodos remotos (RMI/CORBA)
funciones de correo electrnico (JavaMail)
aplicaciones Web(JSP y Servlets)...etc. aplicaciones Web(JSP y Servlets)...etc.
J2EE es solo una especificacin, esto permite que diversos
productos sean diseados alrededor de estas especificaciones
algunos son Tomcat y Weblogic ; l(JSP 2.0,Servlet 2.4, EJB 2.1 y g y g (J J y
Connector 1.5) entre otros APIs
Oracle ofrece una implementacin de TODAS estas
especificaciones llamada Java EE SDK (Antes JDK)
22
Versiones de Java Versiones de Java Java 1 Java 1 Versiones de Java Versiones de Java Java 1 Java 1
Java 1.0 (Enero 1996) - 8 paquetes, 212 clases - Java 1.0 (Enero 1996) 8 paquetes, 212 clases
Primera versin pblica. La presin hizo que se
hiciera pblica demasiado pronto
el diseo del lenguaje no es demasiado bueno y hay el diseo del lenguaje no es demasiado bueno y hay
montones de errores.
Java 1.1 (Marzo 1997) - 23 paquetes, 504 clases
Mejoras de rendimiento en la JVM,
nuevo modelo de eventos en AWT,
clases anidadas serializacin de objetos API de JavaBeans clases anidadas, serializacin de objetos, API de JavaBeans,
archivos jar, internacionalizacin, API Reflection (Reflexin),
JDBC, RMI.
Se aade la firma del cdigo y la autentificacin Es la Se aade la firma del cdigo y la autentificacin. Es la
primera versin lo suficientemente estable y robusta.
23
Versiones de Java Versiones de Java Java 2 Java 2 Versiones de Java Versiones de Java Java 2 Java 2
Java 1.2 (Diciembre 1998 ) - 59 paquetes, 1520 clases
JFC (Swing), Drag and Drop, Java2D, Corba, API Collections.
Se producen notables mejoras a todos los niveles. Sun lo renombra como Java 2.
El JDK (Java Development Kit) se renombra como SDK.
Se divide en J2SE, J2EE y J2ME.
Java 1.3 (Abril 2000) - 77 paquetes, 1595 clases
Orientada a la resolucin de errores y a la mejora del rendimiento;
JNDI (J N i d Di t I t f ) l API J S d JNDI (Java Naming and Directory Interface) y la API Java Sound.
Nuevo compilador de alto rendimiento JIT (Just In Time).
Java 1.4 (2002) - 103 paquetes, 2175 clases
Mejora notablemente el rendimiento Mejora notablemente el rendimiento
soporte de expresiones regulares, una nueva API de entrada/salida de bajo nivel (NIO,
New I/O), clases para el trabajo con Collections, procesado de XML; y mejoras de
seguridad como el soporte para la criptografa mediante las Java Cryptography
Extension (JCE), la inclusin de la Java Secure Socket Extension (JSSE) y el Java (J ), J (J ) y J
Authentication and Authorization Service (JAAS).
24
Versiones de Java Versiones de Java Java 2 Java 2 Versiones de Java Versiones de Java Java 2 Java 2
Java 1.5 (Octubre 2004) - 131 paquetes, 2656 clases J ( ) p q
renombrado por motivos de marketing como Java 5.0.
tipos genricos (generics), autoboxing/unboxing conversiones implicitas
entre tipos primitivos y los wrappers correspondientes, Enumerados,
B l i lifi d i f F i d Bucles simplificados, printf, Funciones con nmero de parmetros
variable, Metadatos en clases y mtodos.
Java 1.6 (diciembre de 2006) tiene 24 actualizaciones hasta hoy.
S bi l b "J2SE" J SE li i l " 0" d l Sun cambi el nombre "J2SE" por Java SE y elimin el ".0" del nmero
de versin.
Incluye un nuevo marco de trabajo y APIs que hacen posible la
combinacin de Java con lenguajes dinmicos como PHP, Python, Ruby y J g j , y , y y
JavaScript.
Incluye el motor Rhino, de Mozilla, una implementacin de Javascript en
Java.
Incluye un cliente completo de Servicios Web y soporta las ltimas
especificaciones para Servicios Web, como JAX-WS 2.0, JAXB 2.0, STAX
y JAXP.
Mejoras en la interfaz grfica y en el rendimiento Mejoras en la interfaz grfica y en el rendimiento.
25
Versiones de Java Versiones de Java Java 2 Java 2 Versiones de Java Versiones de Java Java 2 Java 2
Oracle toma el poder y Apache sale de la JCP Oracle toma el poder y Apache sale de la JCP
Java 7 (Julio 2011)
reduce el cdigo repetitivo mediante la adicin de
i d d i id d l l j J l caractersticas de productividad para el lenguaje Java y el
API de Java SE.
Ahora es capaz de soportar procesadores multincleo
mejoras para lenguajes de programacin dinmicos.
Java EE 7 es "La Nube", estamos hablando de mltiples
clientes, control de versiones de aplicaciones, soporte para clientes, control de versiones de aplicaciones, soporte para
NRDBMS, modularidad.
JavaFX 2.0 incorporar vdeo a pantalla completa, HD, 3D
real, aceleracin por hardware (DirectX y OpenGL) y real, aceleracin por hardware (DirectX y OpenGL) y
audio de baja latencia
Java 8 (Octubre 2012)
26
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Algunas de las caractersticas de Java: Algunas de las caractersticas de Java:
La mquina virtual de Java
Recoleccin de Basura
Cdigo de Seguridad g g
27
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
La mquina virtual de Java
Java Virtual Machine (JVM)
i i i i i l di l una mquina imaginaria que se implementa mediante la
emulacin de software en una mquina real
establece las especificaciones de la plataforma hardware en la
il l i di l l J que compilamos cualquier cdigo en la tecnologa Java.
Bytecode
un lenguaje de mquina especial que puede ser entendido por un lenguaje de mquina especial que puede ser entendido por
la mquina virtual de Java (JVM)
independiente de cualquier hardware en particular, por lo que
en cualquier computadora con un Intrprete de Java se puede en cualquier computadora con un Intrprete de Java se puede
ejecutar un programa Java compilado, no importa en que tipo
de computadora fue compilado el programa
28
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
29
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Recolector de Basura Recolector de Basura
Subproceso de recoleccin de basura
Responsable de liberar cualquier memoria
susceptible de ser liberada. Se ejecuta de p j
forma automtica durante la duracin del
programa Java. p g J
El desarrollador es liberado de la carga de
tener que llevar a cabo la liberacin de tener que llevar a cabo la liberacin de
memoria en cdigo.
30
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Seguridad de Cdigo Seguridad de Cdigo
Se lleva a cabo en java a travs de la aplicacin de su
JRE.
JRE ejecuta el cdigo compilado para una JVM y realiza
la carga de clases (a travs de el cargador de clases),
verificacin de cdigo (a travs del verificador de
bytecodes) y finalmente la ejecucin del cdigo bytecodes) y, finalmente, la ejecucin del cdigo.
31
Tecnologa Java Tecnologa Java Tecnologa Java Tecnologa Java
Seguridad de Cdigo g g
Class loader (Cargador de clases)
el responsable de cargar todas las clases necesarias para el
programa Java programa Java
aade seguridad, separando los espacios de nombres para las
clases del sistema de archivos local de los que son importados
de la red
Despus de cargar todas las clases, la capa de memoria del
ejecutable es entonces, creada. Esto aade proteccin contra el
acceso no autorizado a las reas restringidas del cdigo ya que la
capa de memoria es creada en tiempo de ejecucin.
Verificador de bytecodes
prueba el formato de los fragmentos de cdigo y comprueba p g g y p
fragmentos de cdigo ilegales que pueden violar los derechos
de acceso a los objetos
32
Fases de un programa Java Fases de un programa Java Fases de un programa Java Fases de un programa Java
La figura siguiente se describe el proceso La figura siguiente se describe el proceso
de compilacin y la ejecucin de un
programa Java
33
Fases de un programa Java Fases de un programa Java Fases de un programa Java Fases de un programa Java
Tarea Herramienta a Salida a ea e a e ta a
emplear
Sa da
Escribir el programa Cualquier editor de
textos
*.java
textos
Compilar el programa Javac (Compilador java) *.class (bytecodes java)
Ejecutar el programa Java (Intrprete java) Salida del programa
34
Resumen Resumen Resumen Resumen
Antecedentes de Java Antecedentes de Java
Historia
T l J Tecnologa Java
Un lenguaje de programacin, entorno de
desarrollo entorno de aplicacin y entorno de desarrollo, entorno de aplicacin y entorno de
despliegue
Caractersticas de Java Caractersticas de Java
Java Virtual Machine, recoleccin de basura y el
cdigo de seguridad
Fases de un programa Java
Escribirlo, compilarlo, ejecutarlo
35

Anda mungkin juga menyukai