CFJ A Leccion 01 Introduccion Java
CFJ A Leccion 01 Introduccion Java
CFJ A Leccion 01 Introduccion Java
Hola, te saluda Ubaldo Acosta. Bienvenida y bienvenido. Espero que ests listo para empezar esta
aventura con nosotros. Si ha sido tu sueo convertirte en un experto Java, te felicito por que ests en
el lugar correcto. A lo largo de este curso comenzars tu camino para convertirte en un especialista
Java como siempre lo has deseado. No necesitas conocimientos previos ya que comenzaremos desde
cero. Este curso es ideal si ests comenzando con el lenguaje Java.
En esta primera leccin vamos a estudiar una introduccin a la tecnologa Java, veremos qu es el
lenguaje Java y por qu es importante al da de hoy dominar esta tecnologa, ya que existen una
demanda increble de profesionales bien capacitados en la tecnologa Java, pero poca gente
preparada para afrontar estos retos, as que es el mejor momento para que tomes ventaja y te
conviertas en un especialista de una vez por todas. Adems veremos las versiones de Java, y la
evolucin de esta tecnologa hasta el da de hoy.
Adems, estudiaremos las caractersticas ms importantes de Java y las razones de peso por las
cuales Java es considerado el lenguaje nmero uno a nivel mundial al da de hoy.
As si ests listo, de este lado tambin ya est todo preparado para comenzar este fabuloso viaje en
el aprendizaje del lenguaje de programacin ms popular del mundo, Java.
Vamos a comenzar de inmediato.
Java es ms que un lenguaje de programacin, es una tecnologa muy completa y considerada como la opcin
nmero uno para muchos de los desarrollos empresariales al da de hoy. Pero vamos a comenzar por los
elementos bsicos, por lo que en estas lecciones estudiaremos Java como un lenguaje de programacin
desarrollado por Sun Microsystems. Me gustara comentarles que aunque vamos a tocar algunos puntos
histricos, no es nuestra intencin hacer anotaciones de cosas obvias que pueden encontrar en internet, sino
nicamente con la intencin de ponerlos en contexto, y tengamos un panorama general de lo que vamos a
aprender.
Java nace a principios de los aos 90, creado por James Gosling, con el objetivo de crear un lenguaje de
programacin que se utilizara en la nueva generacin de dispositivos inteligentes. Se intent utilizar C++ y
extenderlo, sin embargo result complicado este lenguaje y James Gosling decidi crear un nuevo lenguaje
llamado OAK, posteriormente se cambi el nombre a Java (cuenta la leyenda que decidieron escoger el
nombre de Java debido al caf que acostumbraban beber, Java es un tipo de caf proveniente de Asia).
Cualquiera que haya sido el origen del nombre, Java es al da de hoy un nombre que todo aquel que utiliza una
computadora tiene presente, ya sea mquina virtual de Java, o algn plug-in de Java, y esto se debe a que
muchas aplicaciones instaladas en nuestra computadora utilizar a Java como lenguaje de programacin.
El xito de Java radico en la posibilidad de instalar un componente, conocido como Applet, en un navegador
Web, y con el boom de internet fue posible extender este concepto a cualquier pgina Web y comenzar a
ejecutar aplicaciones Java en cualquier parte del mundo.
Al pasar los aos, el xito de Java, no solamente en internet sino en la creacin de sistemas empresariales
hizo que Oracle pusiera los ojos en esta tecnologa, y finalmente en 2009 fuera adquirido por esta mega
empresa de software.
Han pasado ya varios aos desde la adquisicin de Java, y afortunadamente tanto la evolucin del lenguaje,
las herramientas y el apoyo por parte de las grandes empresas y la comunidad de programadores Java
(contada por millones) sigue haciendo de Java el lenguaje nmero uno a nivel mundial para la creacin de
software de propsito general, tanto as que Google bas el sistema operativo Android el cual es una extensin
del lenguaje Java, llamado Dalvik, y por ello el apoyo a la tecnologa Java no solamente sigue vigente sino que
vuelve a estar de moda gracias a las grandes empresas y su decisin de seguir creando software basado en
este lenguaje de programacin.
Todos los Derechos Reservados Global Mentoring
El xito de Java reside en varias de sus caractersticas, por ejemplo Java es un lenguaje sencillo, o todo lo sencillo que se puede considerando que es un
lenguaje orientado a objetos, eliminando la mayor parte de los problemas de C++, que aport su granito (o tonelada) de arena a los problemas del lenguaje C,
el cual tambin hereda mucha de su sintaxis.
El lenguaje Java tiene las siguientes caractersticas generales:
Orientado a Objetos: A diferencia de lenguajes estructurados (como el lenguaje C), Java define clases para ordenar, clasificar y modelar la informacin de
los sistemas de informacin, cualquiera que este sea. Los objetos agrupan estructuras encapsuladas y contienen tanto sus datos como los mtodos (o
funciones) que manipulan esos datos.
Simple: Por simplicidad nos referimos a que Java utiliz varias de las caractersticas de lenguajes como C y C++, eliminando las cuestiones que consider
ms complejas. Algunas caractersticas son la herencia simple, manejo de la memoria, entre muchas ms, que iremos viendo a lo largo del curso.
Distribuido: Java proporciona una coleccin de clases para su uso en aplicaciones de red, que permiten abrir conexiones con servidores o clientes remotos,
de manera que podemos tener aplicaciones instaladas en distintos servidores o equipos, y an as acceder a esos componentes Java de manera remota.
Multi-hilos: Java permite ejecutar varias tareas a la vez, en el cual cada subproceso es un proceso ms ligero que si se creara un nuevo proceso desde cero,
a este concepto se le conoce como threads y una de las mayores ventajas es que muchas de las tareas de APIs avanzadas de Java consideran de manera
automtica el uso de threads para la ejecucin de muchos de los procesos que se utilizan en la vida real. As que en muchos casos obtendremos estos
beneficios de manera automtica :)
Seguro: La Java Virtual Machine (JVM) no permite que nuestra aplicacin utilice recursos fuera del espacio y recursos asignados, de esta manera, muchas
de las aplicaciones Java son mucho ms seguras que si se ejecutara cdigo fuera de la caja de Java (JVM).
Independiente de Plataforma: Java tiene independencia de plataforma al crear un cdigo intermedio, que conocemos como Bytecode. Este cdigo puede
ser ejecutado en cualquier plataforma. De esta manera tenemos varias ventajas, tanto al momento de crear cdigo Java, como al momento de desplegar o
distribuir nuestras aplicaciones, ya que podemos elegir crear nuestro cdigo en un sistema operativo y ejecutarlo en otro. De aqu viene el dicho "write once run everywhere", ya que podemos hace el esfuerzo de escribir el cdigo en una plataforma, pero una vez creado es posible ejecutar la aplicacin en mltiples
plataformas, trayendo muchos beneficios tanto para el programador como para las empresas.
Estas son slo algunas de las principales caractersticas principales de Java. Conforme vayamos avanzando iremos poniendo en prctica cada una de ellas y
as puedas darte cuenta por ti mismo del poder de Java.
Java se divide en distintos grupos, dependiendo del tipo de solucin que se requiera . Sin embargo todos tiene como fundamento el
lenguaje Java y la mquina virtual de Java, por ello una vez que tenemos conocimiento de este increble lenguaje de programacin, es
posible ir profundizando en cada una de estas tecnologas. Cada versin o edicin, incluye su propio SDK (Software Development kit),
el cual permite a los programadores crear, compilar y ejecutar las aplicaciones creadas en cada versin.
La versin estndar de Java (Java Estndar Edition) se utiliza para crear software para aplicaciones de Escritorio (Desktop) o Applets
que se ejecutan en un navegador Web. Por ejemplo el software de Netbeans que utilizaremos en este curso es un ejemplo de una
aplicacin de Escritorio. En este curso nos enfocaremos precisamente en esta versin estndar y as establecer los fundamentos del
SDK de esta versin, ya que estos son los fundamentos de Java que nos permitirn profundizar en otros cursos tanto en este misma
versin estndar como en versiones empresariales que platicaremos a continuacin.
La versin empresarial conocida como Java EE, se utiliza para crear aplicaciones empresariales de gran escala, de lado del servidor, y
este tipo de aplicaciones pueden ser accedidas desde clientes creados con la versin estndar, o cualquier otro tipo de cliente, como
clientes Web, o Servicios Web, entre otros. La versin empresarial de Java anteriormente se conoca como J2EE, as que si
encontramos mencin de esta versin, ya sabemos que hace referencia a la versin empresarial de Java. El alcance de esta versin
queda fuera del alcance de este curso, pero en globalmentoring contamos con cursos para aprender y profundizar en esta versin de
Java EE.
Finalmente, la versin JME es la versin Micro de Java con el objetivo de crear aplicaciones para celulares y dispositivos mviles. As
como microchips para cmaras de seguridad, GPS, routers, o cualquier dispositivo con una capacidad mucho menor tanto de
procesamiento como de almacenamiento. Cabe mencionar que el sistema Android instalado en miles de celulares y dispositivos
mviles toma como base el lenguaje Java y la mquina virtual de Java, y crea una extensin llamada Dalvik para poder ejecutar cdigo
Java sobre Android. Esto hace que Java siga ms vigente que nunca no solamente en el tema de aplicaciones de escritorio y en el
ambiente empresarial (en el que es el lenguaje de programacin nmero 1), sino que ahora tambin con este crecimiento de Android,
el lenguaje Java se ha popularizado en el tema de dispositivos mviles con Android. El tema de Android queda fuera del alcance de
este curso, pero en global mentoring contamos con capacitacin online para aprender esta tecnologa muy de moda entre los
programadores.
En conclusin, podemos observar que Java no es slo un lenguaje de programacin, sino que es toda una tecnologa que abarca desde
aplicaciones de escritorio, empresariales y aplicaciones mviles, as que Java es ENORME y es por ello que es tan emocionante
aprender esta tecnologa, esto sin mencionar los cientos o miles de proyectos, frameworks y tecnologas que extienden,
complementan y enriquecen la tecnologa Java.
Todos los Derechos Reservados Global Mentoring
A continuacin veremos las distintas versiones de la versin estndar de Java. En 1996 nace Java,
originalmente llamado OAK. En 1997 surge la versin 1.1 en la que se incluye la primera forma visual
de Java conocida como AWT (Abstract Window Toolkit), entre varias APIs ms, un API es un conjunto
de clases y libreras para resolver un problema en especfico, por ejemplo surge el API de JDBC que
nos permite conectarnos a una base de datos, entre varias APIs importantes ms.
Uno de los cambios ms importantes en las versiones de Java, sin duda fueron realizados en la
versin J2SE 5.0 y en la versin Java SE 8.
En la versin J2SE 5.0 se introdujo el concepto de Generics, el cual cambi la forma en que hacamos
conversin entre objetos Java, asignando un tipo especfico a utilizar sobre todo al momento de
trabajar con colecciones. Esto elimin muchos de los errores de ejecucin al manejar tipos objetos y
especificando el tipo de dato que deba contener una coleccin.
Y el cambio mayor para java, no solamente por el los aos que han pasado y que ha madurado el
lenguaje, sino por que tambin implica un cambio de paradigma, es la inclusin de expresiones
lambda, con las cuales podemos combinar el poder de la programacin orientada a objetos con la
programacin funcional, que si bien no es un nuevo paradigma, si es algo nuevo para los
programadores Java.
Para ms informacin pueden consultar este link:
http://docs.oracle.com/javase/8/docs/technotes/guides/language/enhancements.html#javase8
Adems de las caractersticas ya descritas de Java, es importante mencionar varias razones ms por las cuales ser un
experto en Java.
Afortunadamente existe una comunidad de millones de programadores Java a nivel mundial, esto permite que muchos
compaeros programadores aporten conocimiento y soluciones a muchos de los problemas que nos podemos enfrentar
en el da a da, y a diferencia de muchos otros lenguajes y/o plataformas de desarrollo, en las cuales el conocimiento es
muy cerrado, la comunidad de Java aporta mucho de este conocimiento gratis a travs de internet, as que muchas
soluciones las podremos encontrar a travs de estas comunidades y foros de ayuda que a nivel mundial existen.
El soporte a Java que las grandes industrias de software aportan, permite que Java sea la opcin nmero uno al da de
hoy cuando estamos por seleccionar un nuevo proyecto, esto a su vez permite que se generen excelentes oportunidades
laborales a nivel mundial y aunque existen muchos programadores, la demanda de los mismos supera por mucho el
nmero de programadores que se necesitan para cubrir esta demanda. Esto permite que al bien preparados tengamos
una gran cantidad de oportunidades para nuestros crecimiento y desarrollo profesional.
Adems, aprender Java facilita aprender otros lenguajes de programacin, ya que tanto las buenas prcticas, los
patrones de diseo, frameworks y dems tecnologas que se generan debido al desarrollo con Java es adoptado por otros
lenguajes y tecnologas para facilitar tambin sus desarrollos de software, as que una vez aprendido Java, ser ms
simple entender y comunicarnos con otros programadores de otros lenguajes de programacin.
Estas son tan slo algunas de las razones ms importantes por la cuales convertirnos en un experto en Java.
As ya tenemos claro tanto la historia, las caractersticas principales y las razones por las cuales dominar Java. As que con
esto ms claro, vayamos directo a la prctica, donde instalaremos el software de Java y pondremos en prctica los
conceptos que estudiaremos y aplicaremos en este curso. Adelante
Empezando con temas un poco ms tcnicos, podemos ver que para crear programas en Java
necesitamos agregar cdigo a un archivo de texto y con extensin .java.
Este archivo se compila por medio del comando javac, el cual generar el cdigo conocido como
bytecode. Este archivo generado tiene la extensin .class y es el que podemos utilizar para ejecutar
nuestro programa.
Una gran ventaja de contar ya con este archivo es que sin importar dnde escribimos esta clase (por
ejemplo en Windows, mac o Linux), este archivo se puede ejecutar en cualquier ambiente, slo
contando con una mquina virtual de Java. De esta manera podemos tener un archivo .class y
ejecutarlo en ambientes Windows, mac o Linux, o cualquier otro sistema operativo o ambiente que
tenga instalada una mquina virtual. A esto se le conoce como write once / run anywhere, ya que a
diferencia de otros lenguajes, en Java escribimos solamente una vez nuestro programa y lo podemos
ejecutar en cualquier plataforma.
Esta es una de las caractersticas por las cuales Java es al da de hoy uno de las plataformas y
lenguajes de programacin ms utilizados a nivel mundial.
10
Una de las cuestiones que Java simplific muchsimo respecta al tema de manejo de memoria, fue la
introduccin del concepto de recolector de basura o garbage collector. A diferencia de lenguajes
como C o C++, en los cuales tenamos que manejar el concepto de apuntadores y tener bastante
cuidado respecto a la localidad de memoria en donde hacia referencia los datos de nuestros
programas, en Java la asignacin de datos y objetos en la memoria ram se maneja de manera
automtica. Esto facilita enormemente el trabajo del programador, ya que se enfoca en tareas ms
importantes y productivas que el manejo de memoria.
Como programadores Java, nicamente debemos preocuparnos por crear nuestras variables, sin
importar si son objetos o tipos primitivos (que veremos ms adelante) y Java se encargar de
reservar el espacio de memoria necesario para la informacin del programa. Una vez que nuestro
programa ha dejado de utilizar este espacio de memoria, el recolector de basura o garbage collector,
detecta estos espacios de memoria y los limpia con el objetivo de reutilizarlos para que otro
programa pueda utilizar estos mismos espacios de memoria, haciendo ms eficiente el uso de la
misma.
Existen distintas clasificaciones respecto al manejo de memoria en Java, sin embargo esto lo
estaremos estudiando posteriormente a ms detalle. De momento solo debemos quedarnos con el
concepto de que es una de las simplificaciones ms importantes que aport Java respecto al manejo
de la memoria de manera dinmica.
11
Vamos a hablar un poco ms del ambiente de ejecucin de Java. En Java tenemos dos momentos
importantes al momento de crear y ejecutar nuestro programa. Por un lado tenemos que compilar
nuestro programa, pudiendo encontrar varios errores y debemos corregirlos para que nuestro
programa pueda ser compilado. Durante este proceso se dice que estamos en tiempo de
compilacin, y para ello se ejecuta el comando javac (java compiler). Esto en un IDE como Netbeans,
el cual utilizaremos al lo largo del curso, prcticamente con slo ir escribiendo nuestro cdigo o
guardar nuestro archivo estamos compilando nuestro programa, as que ser muy transparente este
proceso de ejecucin del comando javac para nosotros. Sin embargo haremos una prctica para que
puedan visualizar cmo compilar cualquier programa Java desde la lnea de comandos.
Por otro lado, una vez que ya se ha compilado nuestro programa y queremos ejecutarlo, se dice que
estamos en tiempo de ejecucin, y en este proceso de ejecutan varias cosas.
Por un lado Java detecta cual es la clase que se desea ejecutar, ya debe existir un archivo con
extensin .class el cual contiene los bytecodes que entiende la mquina virtual de Java. Una vez que
se tiene este archivo .class se carga en memoria, y se revisa que todo est en orden con el verificador
de bytecode. Posteriormente se ejecuta el interprete de Java el cual hace el proceso transparente
para nosotros de ejecutar nuestro archivo .class en cualquier plataforma, ya sea Windows, Mac,
Linux o cualquier sistema operativo o plataforma que cuente con una mquina virtual. Finalmente la
mquina virtual es la que permite ejecutar nuestro programa sobre el hardware y sistema operativo
seleccionado.
As que este es el proceso cuando creamos, compilamos y ejecutamos nuestros programas en Java.
Esto lo iremos estudiando a detalle en las siguientes lecciones, por lo que al terminar el curso
seremos expertos en este tema.
Todos los Derechos Reservados Global Mentoring
12
A continuacin vamos a instalar las herramientas con las cuales vamos a trabajar a lo largo del curso.
Para iniciar vamos a instalar el software de Java para poder crear programas, compilarlos y
ejecutarlos en nuestro equipo. Este es el Java Development Kit, o Kit de Desarrollo de Java.
Dependiendo de la plataforma que utilicemos es el tipo de software que vamos a descargar e
instalar.
Posteriormente y una vez instalado el JDK, vamos a configurarlo para poder utilizar el JDK desde
cualquier parte de nuestro sistema operativo.
Tambin instalaremos el IDE de Netbeans. IDE significa Integrated Development Enviroment o
Ambiente de Desarrollo Integrado. Y nos va a facilitar el desarrollo y creacin de software Java e
incluso de otros lenguajes, pero en para cuestiones de este curso ser creacin de programas en
Java.
Finalmente crearemos nuestro primer programa, tanto ejecutndolo desde la lnea de comandos, as
como desde el IDE de Netbeans.
As que manos a la obra!!!
13
En Global Mentoring promovemos la Pasin por la Tecnologa Java. Te invitamos a visitar nuestro
sitio Web donde encontrars cursos Java Online desde Niveles Bsicos, Intermedios y Avanzados, y
as te conviertas en un experto programador Java.
A continuacin te presentamos nuestro listado:
Lgica de Programacin
Hibernate Framework
Fundamentos de Java
Spring Framework
JavaServer Faces
JBoss Administration
Servlets y JSPs
Struts Framework
HTML5 y CSS3
Datos de Contacto:
Sitio Web: www.globalmentoring.com.mx
Email: [email protected]
14