miércoles, 22 de junio de 2011

3.- Analizando Codigo de la primera aplicacion en Java

Analizando linea a linea el Hola Mundo en Java

Compilando y ejecutando

Comentarios en Java

Clase HolaMundo

public static void main(String args[] )

palabra public en Java

Static en Java

void en Java

String args[] en Java

Mostrar mensaje por consola en Java


viernes, 17 de junio de 2011

2.- Primera Aplicacion en Java (HolaMundo)

Cómo crear tu primera aplicación Java visual con Eclipse

Eclipse es una plataforma de software de Código abierto independiente de una plataforma para desarrollar Aplicaciones. Esta plataforma, es usada para desarrollar entornos integrados de desarrollo (IDE), como el IDE de Java (Java Development Toolkit JDT).
Eclipse fue desarrollado originalmente por IBM como el sucesor de VisualAge. Ahora es desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.
En primer lugar descargaremos Eclipse, desde la web: http://www.eclipse.org/downloads/ (unos 121 MB de tamaño), si estamos trabajando en entorno Windows pulsaremos sobre Download now: Eclipse SDK 3.2.2, Windows:

Para trabajar con Eclipse en otras plataformas / sistemas operativos (Linux, Solaris, Mac, AIX, HP-UX, etc) , pulsaremos en "Other downloads for 3.2.2 (http://download.eclipse.org/eclipse/downloads/drops/
R-3.2.2-200702121330):

La versión 3.2.2 de Eclipse necesita, al menos la versión 1.4 de Java runtime environment (JRE) o Java development kit (JDK), es recomendable tenerla instalada, para descargarla: http://www.java.com/es/download/manual.jsp
Podemos descargar algunos ejemplos de aplicaciones desarrolladas en Eclipse, desde la propia web:http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2.2-200702121330/
eclipse-examples-3.2.2-win32.zip.


Para traducir Eclipse al castellano descargaremos el fichero .zip de: http://download.eclipse.org/eclipse/downloads/drops/L-3.2.1_Language_Packs-200609210945/index.php

Los ficheros descargados son:
Nombre ficheroDescripciónTamaño
eclipse-SDK-3.2.2-win32.zipEclipse SDK 3.2.2 (Windows)121 MB
NLpack1-eclipse-SDK-3.2.1-win32.zipPaquete de idiomas (español, etc) para Eclipse SDK 3.2.155 MB
eclipse-examples-3.2.2-win32.zipEjemplos de Eclipse 3.2.23,58 MB
jre-6u1-windows-i586-p-iftw.exeJava runtime environment 1.6.0_01360 KB


Empezaremos instalando JRE (si aún no lo tenemos), para ello ejecutaremos "jre-6u1-windows-i586-p-iftw.exe".
Eclipse no necesita instalación, es suficiente con descomprimir el fichero "eclipse-SDK-3.2.2-win32.zip" en la carpeta que deseemos:

Antes de ejecutar Eclipse, descomprimiremos el fichero "NLpack1-eclipse-SDK-3.2.1-win32.zip" en la misma carpeta que Eclipse:
Reemplazaremos todos los ficheros, pulsando "Yes to All":
Una vez descomprimido Eclipse y el paquete de idiomas, en la carpeta donde hayamos descomprimido Eclipse ejecutaremos el fichero eclipse.exe:
Nos pedirá una carpeta para el espacio de trabajo (workspace) para esta sesión, en nuestro caso C:/Documents and Settings/alonso/workspace. Si queremos que no nos lo vuelva a preguntar en futuras sesiones marcaremos "Use this as the default and do not ask again" ("Utilizar este directorio predeterminado y no volver a preguntar"). Pulsaremos "OK" ("Aceptar") para continuar:
Para crear un nuevo proyecto / aplicación / programa en Java con Eclipse pulsaremos en "Archivo" - "Nuevo" - "Proyecto":
Seleccionaremos el tipo de proyecto Java que queramos crear: "Proyecto Java" y pulsaremos "Siguiente":
Indicaremos el nombre del proyecto Java de Eclipse (en nuestro caso "PrimaraAplicacion"), indicaremos la carpeta donde queramos guardar el proyecto Eclipse ("Crear proyecto nuevo en área de trabajo" o bien "Crear proyecto a partir de un fuente existente"). También podremos seleccionar el Java runtime environment (JRE) que queramos utilizar para este prouecto. Pulsaremos "Finalizar" para concluir el asistente de creación de proyecto o "Siguiente" para continuar con la creación y configuración del proyecto Java Eclipse:
Podremos configurar más opciones para el proyecto, una vez configuradas pulsaremos "Finalizar" para iniciar el desarrollo del proyecto Eclipse:
Cerraremos la ventana de "Bienvenida" para visualizar el proyecto creado "PrimeraAplicacion":
El aspecto del nuevo proyecto Java - Eclipse:

A continuación crearemos una nueva clase Java para crear el típico mensaje "Hola mundo". Para ello pulsaremos sobre "PrimeraAplicación" con el botón derecho del ratón, seleccionaremos "Nuevo" - "Clase":
Indicaremos el nombre del paquete en "Paquete" (no se recomienda utilizar el paquete predeterminado), en nuestro caso "holaMundo". Indicaremos el nombre de la clase en "Nombre" (en nuestro caso "HolaMundo"). Podremos configurar una serie de parámetros de la clase: modificadores (public, default, private, protected, abstract, final, static), apéndices de método, etc. Marcaremos "public static void main(String[] args)", pues será la clase principal de la aplicación:
Añadiremos la línea de código:
System.out.println("Hola mundo");
Para compilar nuestra aplicación Java Eclipse pulsaremos en la flecha hacia bajo que aparece en la parte derecha del botón "Ejecutar", nos mostrará un menú emergente, seleccionaremos "Ejecutar como" y pulsaremos en "Aplicación Java":
Nos advertirá de que los cambios no se han guardado (las clases sin guardar desde la última compilación). Para guardar siempre antes de compilar marcaremos "Guardar siempre los recursos antes de lanzar". Pulsaremos "Aceptar" para compilar:
En la parte inferior de la ventana aparecerá el resultado de la compilación de nuestra aplicación Java con Eclipse:
El código de la aplicación Java "HolaMundo":
package holaMundo;


public class HolaMundo { 
  /**
   * @param args
   */
  public static void main(String[] args) {
    System.out.println("Hola mundo");      
  }
}
Cuando se produce un error o un aviso se puede ver en la pestaña "Problemas". Nos indicará una descripción del problema y la línea de código donde se produce. En la línea de código también nos la mostrará subrayada (rojo si es un error y amarillo si es un aviso). En nuestro caso nos está avisando de que hemos importado la clase "awt.Dialog" pero no la hemos utilizado:

miércoles, 15 de junio de 2011

1.- Definicion y Principales Caracteristicas del Lenguaje Java

Definición:


Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de 1991, con el que se van a poder crear tanto programas asociados a páginas HTML (applets) como programas
independientes de éstas (aplicaciones). Y todo ello, independiente de la plataforma de computación. Los programas hechos en Java podrán ejecutarse en INTEL,MOTOROLA, Solaris, Windows y Macintosh, entre otros.


Características principales:- Java:


Java organiza sus programas en una colección de objetos. Esto nos va a permitir estructurar los programas de una maneramás eficiente y en un formato más fácil de comprender.

- Distribuido: Java dispone de una serie de librerías para que los programas se puedan ejecutar en varias máquinas y puedan interactuar entre sí.
- Robusto: Java está diseñado para crear software altamente fiable.
- Seguro: Java cuenta con ciertas políticas que evitan que se puedan codificar virus con este lenguaje, sin olvidar además que existen muchas otras restricciones que limitan lo que se puede o no se puede hacer conlos recursos críticos de una máquina.
- Interpretado: La interpretación y ejecución se hace a través de la Máquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la ejecución de lasaplicaciones Java en cualquier plataforma.
- Independiente de la Arquitectura: El código compilado de Java se va a poder usar en cualquier plataforma.
- Multiejecución: Java permite elaborar programas que permitan ejecutar varios procesos al mismo tiempo sobre la misma máquina

viernes, 1 de octubre de 2010

Historia de Java

                                             HISTORIA DE JAVA

A. ¿Por qué se diseñó Java?
Los lenguajes de programación C y Fortran se han utilizado para diseñar algunos de los sistemas más complejos en lenguajes de programación estructurada, creciendo hasta formar complicados procedimientos. De ahí provienen términos como "código de espagueti" o "canguros" referentes a programas con múltiples saltos y un control de flujo difícilmente trazable.
No sólo se necesitaba un lenguaje de programación para tratar esta complejidad, sino un nuevo estilo de programación. Este cambio de paradigma de la programación estructurada a la programación orientada a objetos, comenzó hace 30 años con un lenguaje llamado Simula67.
El lenguaje C++ fue un intento de tomar estos principios y emplearlos dentro de las restricciones de C. Todos los compiladores de C++ eran capaces de compilar programas de C sin clases, es decir, un lenguaje capaz de interpretar dos estilos diferentes de programación. Esta compatibilidad ("hacia atrás") que habitualmente se vende como una característica de C++ es precisamente su punto más débil. No es necesario utilizar un diseño orientado a objetos para programar en C++, razón por la que muchas veces las aplicaciones en este lenguaje no son realmente orientadas al objeto, perdiendo así los beneficios que este paradigma aporta.
Así Java utiliza convenciones casi idénticas para declaración de variables, paso de parámetros, y demás, pero sólo considera las partes de C++ que no estaban ya en C.
Las principales características que Java no hereda de C++ son:
  • Punteros: Las direcciones de memoria son la característica más poderosa de C++. El inadecuado uso de los punteros provoca la mayoría de los errores de colisión de memoria, errores muy difíciles de detectar. Además, casi todos los virus que se han escrito aprovechan la capacidad de un programa para acceder a la memoria volátil (RAM) utilizando punteros. En Java, no existen punteros, evitando el acceso directo a la memoria volátil.
  • Variables globales: Con ellas cualquier función puede producir efectos laterales, e incluso se pueden producir fallos catastróficos cuando algún otro método cambia el estado de la variable global necesaria para la realización de otros procesos. En Java lo único global es el nombre de las clases.
  • goto: Manera rápida de arreglar un programa sin estructurar el código. Java no tiene ninguna sentencia goto. Sin embargo Java tiene las sentencias break y continue que cubren los casos importantes de goto.
  • Asignación de memoria: La función malloc de C, asigna un número especificado de bytes de memoria devolviendo la dirección de ese bloque. La función free devuelve un bloque asignado al sistema para que lo utilice. Si se olvida de llamar a free para liberar un bloque de memoria, se están limitando los recursos del sistema, ralentizando progresivamente los programas. Si por el contrario se hace un free sobre un puntero ya liberado, puede ocurrir cualquier cosa. Más tarde C++ añadió new y delete, que se usan de forma similar, siendo todavía el programador, el responsable de liberar el espacio de memoria. Java no tiene funciones malloc ni free. Se utiliza el operador new para asignar un espacio de memoria a un objeto en el montículo de memoria. Con new no se obtiene una dirección de memoria sino un descriptor al objeto del montículo. La memoria real asignada a ese objeto se puede mover a la vez que el programa se ejecuta, pero sin tener que preocuparse de ello. Cuando no tenga ninguna referencia de ningún objeto, la memoria ocupada estará disponible para que la reutilice el resto del sistema sin tener que llamar a free o delete. A esto se le llama recogida de basura. El recolector de basura se ejecuta siempre que el sistema esté libre, o cuando una asignación solicitada no encuentre asignación suficiente.
  • Conversión de tipos insegura: Los moldeados de tipo (type casting) son un mecanismo poderoso de C y C++ que permite cambiar el tipo de un puntero. Esto requiere extremada precaución puesto que no hay nada previsto para detectar si la conversión es correcta en tiempo de ejecución. En Java se puede hacer una comprobación en tiempo de ejecución de la compatibilidad de tipos y emitir una excepción cuando falla.
B. Comienzos
Java fue diseñado en 1990 por James Gosling, de Sun Microsystems, como software para dispositivos electrónicos de consumo. Curiosamente, todo este lenguaje fue diseñado antes de que diese comienzo la era World Wide Web, puesto que fue diseñado para dispositivos electrónicos como calculadoras, microondas y la televisión interactiva.

En los primeros años de la década de los noventa, Sun Microsystems decidió intentar introducirse en el mercado de la electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tras unos comienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar margen de maniobra al equipo responsable del proyecto.
Inicialmente Java se llamó Oak (roble en inglés), aunque tuvo que cambiar de denominación, debido a que dicho nombre ya estaba registrado por otra empresa. Se dice este nombre se le puso debido a la existencia de tal árbol en los alrededores del lugar de trabajo de los promotores del lenguaje.
Tres de las principales razones que llevaron a crear Java son:
  1. Creciente necesidad de interfaces mucho más cómodas e intuitivas que los sistemas de ventanas que proliferaban hasta el momento.
  2. Fiabilidad del código y facilidad de desarrollo. Gosling observó que muchas de las características que ofrecían C o C++ aumentaban de forma alarmante el gran coste de pruebas y depuración. Por ello en los sus ratos libres creó un lenguaje de programación donde intentaba solucionar los fallos que encontraba en C++.
  3. Enorme diversidad de controladores electrónicos. Los dispositivos electrónicos se controlan mediante la utilización de microprocesadores de bajo precio y reducidas prestaciones, que varían cada poco tiempo y que utilizan diversos conjuntos de instrucciones. Java permite escribir un código común para todos los dispositivos.
Por todo ello, en lugar de tratar únicamente de optimizar las técnicas de desarrollo y dar por sentada la utilización de C o C++, el equipo de Gosling se planteó que tal vez los lenguajes existentes eran demasiado complicados como para conseguir reducir de forma apreciable la complejidad de desarrollo asociada a ese campo. Por este motivo, su primera propuesta fue idear un nuevo lenguaje de programación lo más sencillo posible, con el objeto de que se pudiese adaptar con facilidad a cualquier entorno de ejecución.
Basándose en el conocimiento y estudio de gran cantidad de lenguajes, este grupo decidió recoger las características esenciales que debía tener un lenguaje de programación moderno y potente, pero eliminando todas aquellas funciones que no eran absolutamente imprescindibles.
Para más información véase [Cuenca, 1997].

C. Primeros proyectos en que se aplicó Java
El proyecto Green fue el primero en el que se aplicó Java, y consistía en un sistema de control completo de los aparatos electrónicos y el entorno de un hogar. Con este fin se construyó un ordenador experimental denominado *7 (Star Seven). El sistema presentaba una interfaz basada en la representación de la casa de forma animada y el control se llevaba a cabo mediante una pantalla sensible al tacto. En el sistema aparecía ya Duke, la actual mascota de Java.

Más tarde Java se aplicó a otro proyecto denominado VOD (Video On Demand) en el que se empleaba como interfaz para la televisión interactiva que se pensaba iba a ser el principal campo de aplicación de Java. Ninguno de estos proyectos se convirtió nunca en un sistema comercial, pero fueron desarrollados enteramente en un Java primitivo.
Una vez que en Sun se dieron cuenta de que a corto plazo la televisión interactiva no iba a ser un gran éxito, instaron a FirstPerson a desarrollar nuevas estrategias que produjeran beneficios. Entre ellas se encontraba la aplicación de Java a Internet, la cual no se consideró productiva en ese momento.
Para más información véase [Froufe, 1997].

D. Resurgimiento de Java
Aunque muchas de las fuentes consultadas señalan que Java no llegó a caer en un olvido, lo cierto es que tuvo que ser Bill Joy (cofundador de Sun y uno de los desarrolladores principales del sistema operativo Unix de Berckley) el que sacó a Java del letargo en que estaba sumido. Joy juzgó que Internet podría llegar a ser el campo adecuado para disputar a Microsoft su primacía en el terreno del software, y vio en Oak el instrumento idóneo para llevar a cabo estos planes.
Para poder presentarlo en sociedad se tuvo que modificar el nombre de este lenguaje de programación y se tuvo que realizar una serie de modificaciones de diseño para poderlo adaptar al propósito mencionado. Así Java fue presentado en sociedad en agosto de 1995.
Algunas de las razones que llevaron a Bill Joy a pensar que Java podría llegar a ser rentable son:
  • Java es un lenguaje orientado a objetos: Esto es lo que facilita abordar la resolución de cualquier tipo de problema.
  • Es un lenguaje sencillo, aunque sin duda potente.
  • La ejecución del código Java es segura y fiable: Los programas no acceden directamente a la memoria del ordenador, siendo imposible que un programa escrito en Java pueda acceder a los recursos del ordenador sin que esta operación le sea permitida de forma explícita. De este modo, los datos del usuario quedan a salvo de la existencia de virus escritos en Java. La ejecución segura y controlada del código Java es una característica única, que no puede encontrarse en ninguna otra tecnología.
  • Es totalmente multiplataforma: Es un lenguaje sencillo, por lo que el entorno necesario para su ejecución es de pequeño tamaño y puede adaptarse incluso al interior de un navegador.
Las consecuencias de la utilización de Java junto a la expansión universal de Internet todavía están comenzando a vislumbrarse.
Para más información véase [Froufe, 1997].

E. Futuro de Java
Existen muchas críticas a Java debido a su lenta velocidad de ejecución, aproximadamente unas 20 veces más lento que un programa en lenguaje C. Sun está trabajando intensamente en crear versiones de Java con una velocidad mayor.
El problema fundamental de Java es que utiliza una representación intermedia denominada código de byte para solventar los problemas de portabilidad. Los códigos de byte posteriormente se tendrán que transformar en código máquina en cada máquina en que son utilizados, lo que ralentiza considerablemente el proceso de ejecución.
La solución que se deriva de esto parece bastante obvia: fabricar ordenadores capaces de comprender directamente los códigos de byte. Éstas serían unas máquinas que utilizaran Java como sistema operativo y que no requerirían en principio de disco duro porque obtendrían sus recursos de la red.
A los ordenadores que utilizan Java como sistema operativo se les llama Network Computer, WebPC o WebTop. La primera gran empresa que ha apostado por este tipo de máquinas ha sido Oracle, que en enero de 1996 presentó en Japón su primer NC (Network Computer), basado en un procesador RISC con 8 Megabytes de RAM. Tras Oracle, han sido compañías del tamaño de Sun, Apple e IBM las que han anunciado desarrollos similares.
La principal empresa en el mundo del software, Microsoft, que en los comienzos de Java no estaba a favor de su utilización, ha licenciado Java, lo ha incluido en Internet Explorer (versión 3.0 y posteriores), y ha lanzado un entorno de desarrollo para Java, que se denomina Visual J++.
El único problema aparente es la seguridad para que Java se pueda utilizar para transacciones críticas. Sun va a apostar por firmas digitales, que serán clave en el desarrollo no sólo de Java, sino de Internet.
Para más información véase [Framiñán, 1997].

F. Especulación sobre el futuro de Java
En opinión de los redactores de este tutorial, Java es una plataforma que le falta madurar, pero que a buen seguro lo va a hacer. La apuesta realizada por empresas con mucho peso específico ha sido tan grande que va a dar un impulso a Java que no le permitirá caer
Además, el parque de productos (entornos de desarrollo, bibliotecas, elementos de conectividad...) ya disponible en la actualidad es tan amplio que es improbable que se quede en nada.
Por otra parte, la relación simbiótica que tiene con Internet (y por derivación con las Intranets) es un punto a favor de Java de muy difícil refutación.