Sunteți pe pagina 1din 84

CONOCIENDO JAVA

BIENVENIDOS!

Ing. Pavel Stephan Munoz

un toque de humor...

AGENDA

Qu es Java? Historia Programacin Orientada a Objetos Arquitectura Java en todo lugar Cmo comenzar? Ejemplos Comunidades Java en el mercado Futuras Tendencias

QUE ES JAVA?

Qu es Java?
Un

software? Una tecnologa ? Un lenguaje de programacin Una plataforma para desarrollo. Una isla de Indonesia?

Java es todo eso!


Simple, orientado a objetos Independiente de Plataforma (JVM) Portable Verstil, Dinmico, Robusto y seguro. Gratuito Fcil de usar y desarrollar Lenguaje popular y con una gran comunidad de adeptos alrededor del mundo!

Java... popular?
Conozcan el indice TIOBE!

Java es
Orientada a Objetos Semejante a C/C++ Hibrida (Compilada e interpretada)

HISTORIA

Cmo nace Java?

En los laboratorios de Sun se empieza a desarrollar un nuevo lenguaje bautizado Oak (roble).
Orientado a Objetos Parecido a C++ Proyectado que fuera multiplataforma Creado por James Gosling

Cmo nace Java?

Despus de 6 meses SUN transforma el proyecto en una empresa llamada First Person

Al fin Java

El lenguaje OAK se torna producto y Naughton sugiere que sea distribuido gratuitamente en el web. Navegador Web Runner, mas tarde HotJava Browser: nacen los Applets! Sun acuerda poner disponible OAK, sin embargo cambia su nombre a JAVA Netscape anuncia su nuevo navegador con soporte para Java y esta tecnologia se dispara

Evolucin de Java

Evolucin
Java 1.0a Java Development Kit 1.1 Java 2 Platform 1.2. Java 2 Platform 1.3. Java 2 Platform 1.4. Java 2 Platform 1.5. (Tiger) Java 2 Platform 1.6. (Mustang) Prxima: Java 7 (Dolphin).

Mitos de Java

Java es lento! Las primeras versiones si lo eran sin embargo las mas nuevas son casi tan rpidas como C++ No posee un ambiente RAD (Como Visual Studio) Hay muchas herramientas de alta productividad, disponibles e inclusive gratuitas JavaScript es un derivado de Java

Mitos de Java

Java solo sirve para hacer Applets Error! Java sirve para desarrollar aplicaciones de escritorio, aplicaciones corporativas y entre otros programas para dispositivos mviles. Java es la mejor forma de hacer todo. Ya quisiera yo. Java es bastante verstil, pero no siempre hace todo.

Porqu usar Java?

Precisas de ms motivos ? Proyectada para redes. Alta aceptacin y soporte de la Industria Mltiples herramientas disponibles, muchas gratuitas y libres. Vasta documentacin, fcil de aprender. Alta productividad. OPEN SOURCE! Etc, etc, etc.

PROGRAMACION ORIENTADA A OBJETOS

Ingeniera de Software
Disear software es un arte! La Ingeniera de Software busca como formalizar metodologas Paradigmas rigen las tareas de Anlisis, Proyecto y Codificacin Los mas parecidos son:

Paradigma Estructurado. Paradigma Orientado a Objetos.

Java Orientada a Objetos


Para desenvolverse bien en Java es necesario saber los conceptos de OO De lo contrario: Difcilmente conseguir evolucionar a los programas mas simples. Ser difcil entender otros programas de otras personas y viceversa. Si no desea aprender OO, entonces es mejor usar PASCAL o C que son metodologa orientada a procedimientos.

Conceptos de OO

Abstraccin Encapsulamiento Modularidades Objetos Clases Vinculos y Asociasiones Composicion Herencia

Mensajes y Mtodos Herencia Clases y Operaciones Abstractas Modularidades Polimorfismo

Perdn?

Objetos
Concepto central de este paradigma. Entidades que incorporan abstracciones relevantes de un problema. Un objeto tiene tres caractersticas:

Estado Comportamiento Identidad

Clases
Objetos que poseen una misma estructura y comportamiento son de una misma clase. Definimos clases no objetos.

Abstraccin
Ignorar aspectos irrelevantes y concentrarnos en los principal Tipos:

Abstraccin de datos. Abstraccin de procedimientos.

Encapsulamiento

Separar los aspectos externos de los aspectos internos:


Aspectos externos: Interfaz, contrato Aspectos internos: Implementacin

Modularidad

Descomponer el sistema en mdulos Fundamental para el reuso.

Vnculos y Asociaciones

Objetos relacionados entre si:


Vnculos: Conexin entre objetos. Asociacin: Conexin entre clases que representa existencia de vnculos. Asociaciones pueden ser cardinalidades

Composiciones
Los objetos complejos son compuestos por objetos mas simples. Composicin: Las partes pueden ser relacionadas a todo. Agregacin: Las partes pueden ser descompuestas.

Herencia
Cuando las clases tienen semejanzas podemos generalizarlas. Jerarquias

Relaciones entre super clases y sub clases

Mensajes y Mtodos
Los Objetos envan mensajes para comunicarse, debe ser la nica forma. Mtodos: Operaciones que un objeto puede realizar.

Persistencia

Capacidad del objeto de trascender en tiempo y espacio:


Almacenamiento en banco de datos. Transmisin por la red.

Clases y Metodos Abstractos


Las clases abstractas no pueden ser instancias. Metodos abstractos no pueden ser implementados. Clases compuestas solamente por metodos abstractas.

Sobrecarga y Sobrescrita
Sobrecarga: Operaciones distintas con el mismo nombre. Sobrescrita: Sub Clase define nueva implementacin para operaciones definidas en una super clase.

Polimorfimo

Habilidad de tomar varias formas.

ARQUITECTURA

Java es mucho!
Un lenguaje de programacin Java Un ambiente de ejecucin. Un Kit de desarrollo Java. Una biblioteca de clases (API) Java.

Plataforma Java 2

Desde la versin 1.2 hasta la 1.5 pas a ser llamada Java 2 y fue dividida en:
Java 2 Platform Standard Edition (JavaSE) Java 2 Platform Enterprise Edition (JavaEE) Java 2 Platform Mobile Edition (JavaME)

Cada una tiene su API JAVASE es la base para otras.

Nuevos Aires

A partir de la versin, quita el 2 de su nombre.


Java Platform, Standard Edition 6 Java SE 6; Java Platform, Enterprise Edition 6 Java EE 6; Java Platform, Mobile Edition 6 Java ME 6.

Java2 permanece en versin 1.5

Java Platform, Stndard Edition

Herramientas de desarrollo + API Nucleo Plataforma de JAVA


Permite el desarrollo de aplicaciones de escritorio, inclusive con interfaz grafica, acceso a base de datos,, I/O, redes, etc. Divida en:

JDK

= Java Development Kit. JRE = Java Runtime Enviroment.

Java RunTime Enviroment


Necesario para la ejecucin de programas en JAVA Es la nica plataforma de Java que los clientes necesitan instalar. En algunos sistemas operativos (MacOS X) ya viene instalada. Implementada por Sun (15 MB)

Java Development Kit


Solamente para programadores Contiene:

Herramientas de desarrollo. Ambiente de Ejecucin API JAVA SE (Compilada y Cdigo Fuente) Programas de Ejemplo. Bibliotecas adicionales Documentacin (obtenida separadamente)

Herramientas Disponibles

Compilador (javac) Interprete (java) Generador de documentacin (javadoc) Depurador (jdb) Generador de Paquetes (jar) Otros:

Visualizados de Applets (appletviewer) Criptografa(keytool, jarsigner, etc.) Etc.

Plataformas Soportadas

Sun da soporte a las siguientes plataformas:


Windows i586 / AMD64 Linux i586/AMD64 Solaris SPARC/x86/x64

Apple desarroll una version para MacOS Otras:

HP UX, FreeBSD, OS/2, AIX, AS/400, OS/390, IRIX, Alpha, SCO, NetWare, etc

Escribe una vez, ejecuta donde quieras:

Los cdigos de Java son compilados para un lenguaje intermedio llamado: ByteCode ByteCodeesinterpretadoporunamaquina virtualaJVM. A JVM envia comandos especficos a la plataforma para el sistema operativo

Principales APIs

AWT/Swing/SWT: interfaces grficas; Java2D: Diseo; JDBC: acesso a Base de Datos; JNDI: acesso a servidores de dominios; RMI: Invocacin remota de mtodos; Beans: padre de JavaBeans; i18n: suporte a internacionalizacion; I/O: entrada y salida (archivos); JNI: Intergracion con lenguajes nativos Math: clculos matemticos;

Principales APIs

Networking: Transmisin por redes; Security: Seguridad; Serialization:; XML: Procesamiento de XML; Lang & Util: ncleo da lenguaje, utilitarios (colecciones, datas, etc.); Concurrencua: Programacion Concurrente(threads); Logging: (log); Reflection

Java Platform, Enterprise Edition

Permite el desarrollo de aplicaciones corporativas:


Multi-llamada, distribudas, centradas en servidores, altamente robustas, estables y escalables Incluye especificaciones para desarrollo Web: Servlets, JSP, Web Services.

Servlets, JSP e EJBs

Servlets e JSPs:

Componentes que responden a peticiones Web usados para construir pginas dinmicas de Web Services
Componentes heredados integrados a otras tecnologas Java EE para proveer acceso remoto, persistencia y transacciones transparentes, procesamiento asncrono, etc.

EJBs:

Otras tecnologas
Java EE Servlets ,EJB; RMI/IIOP e Java IDL; JNDI; JAC e JNI; JAAS; JTA; JMS e JavaMail;

Java Platform, Mobile Edition

Permite desarrollo de aplicaciones para dispositivos mobiles.


Telefonos Celulares. PDAs Dispositivos Embedded. Etc.

Java Card: Aplicaciones para Smart Cards y una cantidad ilimitada de dispositivos

JAVA EN TODO LUGAR

Java esta en todo lugar

Enterprise

COMO COMENZAR?

Preparando el ambiente
Descargar JDK Tambin la documentacin en:

http://java.sun.com Escoja la versin de su sistema operativo.

Instalando

Windows:
Instalar primero Microsft, simplicado. Documentacin compactada.

Linux:
Instalar de los repositorios Documentacin compactada.

Escribiendo Programas

Puedes usar:
Eclipse NetBeans JetBrains IntelliJ IDEA Borland Jbuilder Etc. Editores mas simples:

JEdit JCreator

JAVA Y EL MERCADO

Empresas

El Mercado en nmeros
Informacion de JavaOne: 900+ millones de microcomputadoras corriendo Java 300 millones de descargas de Java desde junio del 2003 12 millones de visitas por mes al sitio java.com 5 millones de desarrolladores Java en el mundo 180,000 desarrolladores registrados en java.net 1+ billon de celulares corriendo java alrededor del mundo

El Mercado en nmeros
Informacion de JavaOne: 635 modelos de celular en el mundo con Java 32 fabricantes de celulares con soporte para Java 140 operadoras de telefonia movil usando Java 3 millones de descargas de JavaEE 28 tipos diferentes de servidores Java eBay confia en Java para sus ventas que traspasan los $1,400.00 por segundo!

El mercado en numeros
Se

estima que Java mueve $100 billones al ao y va en aumento Sun esta en mas de 170 paises 100% de las 500 mayores empresas del mundo (segn revista Fortune) usan Java Sun cambio su nombre en la Bolsa de Valores; antes SUNW, ahora JAVA

El mercado en numeros

Segn el Instituto Gartner: Java es la tecnologia escogida por las empresas; 60% lo usan, 22% planean hacerlo.

Empleos
Oportunidades: Muchas vacantes apareciendo Pocos capacitados, pocos certificados Buenos salarios Mercado en optima fase de crecimiento!

Empleos Cuanto gana al mes un programador Java?


EEUU $4500

Chipre $2000
Austria $1500-3500

Alemania $2000-4500
Suiza $4000-8000 Rusia $800-1000 Reino Unido $4000-8000 Francia: $2000-4000

Certificaciones
realiza pruebas para certificar profesionales en la plataforma Java Profesional certificado posee reconocimiento en el mercado Lamentablemente todavia no tiene tanto efecto en el salario.
Sun

Las certificaciones

Comunidades

Java y el Software Libre


proyectos en SourceForge Primer lugar en FreshMeat Java.net: 180,000 miembros en mas de 1,500 proyectos Mas de 550 grupos de usuarios en el mundo
Muchos

Como participar?
Que pueden hacer por usted? Noticias Articulos y tutoriales Foros Descargas Eventos Etc.

Que puede hacer usted? Registrarse en foros Participar respondiendo dudas Escribir articulos Enviar noticias Etc.

Futuro y tendencias

Tendencias

JavaME, aplicaciones para celulares Mercado con gran crecimiento Apoyo de las empresas telefonicas Aun no se sabe todo lo que es posible hacer

Tendencias
Programacion Orientada a Aspectos (AOP): Creada en 1997 por Xerox Base de muchos frameworks importantes y conocidos Arquitectura Orientada a Servicios (SOA): Implementacion de aplicaciones con servicios compartidos

Tendencias

Web 2.0 y AJAX: Nuevo concepto para el desarrollo de paginas y sistemas web. En torno a los usuarios Contenido creado por los usuarios para los usuarios Necesidad de interfaces ricas y de alta usabilidad

Tendencias

Profesional: Cuidadoconlasnovedadesdelmes Mas que saber un lenguaje de programacion es preciso conocer las arquitecturas y como se acoplan.

Y AHORA?

Seor, quiero aprender mas...

Est con suerte: Muchos libros! Muchos tutoriales! (los de Sun son muy buenos) Portales Grupos de usuario Eventos Cursos!!!

Seor y despues del curso?


Siga de cerca los frameworks que estan de moda Defina un area de su agrado Procure participar en proyectos liderados por otras personas: Gane experiencia Conozca nuevas tecnicas

Curso de Java en ILCOMP


Conceptos bsicos: Historia de Java Arquitectura de Java (Maquina Virtual, Compilador de Java...) Convenciones de codificacion en Java Concepto de clase Concepto de interface Variables miembro Mtodos Paquetes Herencia Interfaces

Curso de Java en ILCOMP


Permisos de acceso (Encapsulacion) Transformacion de Tipo (Casting) Polimorfismo Clases de utilidad Arreglos Clases String y StringBuffer Envoltorios Colecciones Vector Interface Enumeration Hashtable TreeSet Otras colecciones

Curso de Java en ILCOMP


Excepciones Excepciones Estandar de Java Lanzamiento de excepciones Capturar excepciones (try... catch) Crear nuevas Excepciones Manejo de excepciones con herencia de clases Bases de datos: JDBC Conectar a una base de datos Ejecutar sentencias SQL Recuperar valores Actualizar tablas Sentencias Preparadas (Interface PreparedStatement) Transacciones

Curso de Java en ILCOMP


Interfaces grficas con Java Swing Contenedores Manejo de eventos Applets Eclipse SWT GTK Compilar y empaquetar un programa Java

Eso es todo amigos


Muchas gracias a todos! Instituto Latinoamericano de Computacion

Pavel Stephan Munoz minibota.wordpress.com minibota@gmail.com

S-ar putea să vă placă și