sábado, 7 de enero de 2017

Java Máquina Virtual

Java Máquina Virtual

Java Máquina Virtual - La máquina virtual es como su nombre lo indica una máquina virtual que se encarga sólo de interpretar y ejecutar las aplicaciones creadas en el lenguaje de programación Java, si desconoces la definición en la entrada Definición Java podrás aprender que es este lenguaje y sus principales características.

Debido a la característica de ser multi-plataforma el código de una aplicación Java debe ser interpretado por la máquina virtual. Dependiendo de su sistema operativo debe poseer una máquina virtual para poder interpretar los Bytecodes generados por los compiladores.

Java Máquina Virtual - es un programa que procesa el código de forma correcta. 


Como pueden observar en la imagen tenemos un programa llamado miPrograma.java que luego de ser compilado, se genera un archivo con la extensión .class que se llama miPrograma.class. Una vez compilado, es decir, que se haya creado el archivo con los Bytecodes se necesita un interprete para que se pueda utilizar el programa.

En este punto entra la máquina virtual, en la imagen se puede observar 3 computadores con sistemas operativo distintos (Windows, Macintos, Unix) para que el programa funcione o se pueda ejecutar se debe tener instalada la máquina virtual.

Java Máquina Virtual - Misión Principal

La misión principal es la de garantizar la portabilidad de las aplicaciones Java. Definiendo un ordenador abstracto y especifica las instrucciones que este ordenador podrá ejecutar.

Java Máquina Virtual - Tareas Principales

La JVM tiene como tareas principales las siguientes:
  • Reservar espacio en memoria para los objetos creados.
  • Liberar la memoria no usada (Garbage Collection).
  • Asignar variables a registros y pilas.
  • Llamar al sistema huésped para que realice ciertas funciones, tales como accesos a los dispositivos.
  • Vigilar el cumplimiento de las normas de seguridad en las aplicaciones. Siendo la tarea más importante que realiza. Además, las propias especificaciones del lenguaje contribuyen extraordinariamente a este objetivo.
    • Las referencias a arrays son verificadas en el momento de la ejecución del programa.
    • No se permite manipular de forma directa los punteros.
    • La JVM gestiona automáticamente el uso de la memoria, de modo que no queden huecos.
    • No se permiten realizar ciertas conversiones (casting) entre distintos tipos de datos.

Descargar Java Máquina Virtual

Para realizar la descarga de la máquina virtual debes visitar el sitio web de java.

Definición Java

Definición Java

Definición Java - Java es un lenguaje de programación orientado a objetos (POO) que fue desarrollado a principios de los años 90 por la empresa Sun Microsystems

El lenguaje Java en sí mismo parte de la sintaxis de los lenguajes de programación C y C++, pero su modelo de datos ha sido simplificado y se han eliminado las herramientas de bajo nivel, con el fin de evitar los errores presentados en programas desarrollados en C ó C++ que principalmente eran generados por la manipulación directa de punteros de memoria.

Las aplicaciones desarrolladas en Java típica mente son compiladas en bytecodes, aunque también están permitida la compilación en código máquina nativo. Los bytecodes normalmente son interpretados o compilados a código nativo para que puedan ser ejecutados, además los procesadores Java tienen la posibilidad de ejecutar de forma directa el hardware.

Para la Definición Java debemos aclarar que el lenguaje de programación Java fue implementado originalmente en el año 1995 por SUN Microsystems, en el cual dieron a conocer las referencias del compilador, la máquina virtual (JVM) y las librerías de clases de Java. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y evolución del lenguaje a través del Java Community Process.

Definición Java

Características del Lenguaje Java

  • Lenguaje Simple y Familiar: La curva de aprendizaje de este lenguaje es sencilla y muy rápida. La cual posee una sintaxis de programación basada en lenguajes de programación que fueron los pioneros en el desarrollo Orientado a Objetos como fue C++.
  • Orientado a Objetos: Debido a que fue diseñado desde un principio como un lenguaje de programación orientado a objetos, permite la re-utilización de componentes de software.
    • Todo en Java es orientado a objetos
    • Incorpora las principales características de la POO. Herencia, Polimorfismo, Encapsulación, Enlace Dinámico.
    • No permite la Herencia Múltiple.
    • No permite la sobrecarga de operadores.
  • Distribuido: Fue diseñado para trabajar en ambientes de redes, contienen una gran biblioteca de clases para la re-utilización del protocolo TCP/IP, incluyendo HTTP y FTP.
  • Interpretado: El compilador Java se encarga de traducir cada fichero de fuente de clases a código de bytes (ByteCode), estos pueden ser interpretado por todas las máquinas virtuales (JVM). El Bytecode generado por el compilador no es especifico para una máquina determinada, por lo que no se compila y enlaza como ocurre en su sucesor C++, sino que se interpreta.
  • Sólido: El código Java no es fácil de dañar ante errores de programación. 
  • Seguro: Como Java suele funcionar en ambiente de redes la seguridad debe interesar en sobremanera. 
  • Arquitectura Neutral: Mediante la creación de archivos de byte (Bytecode) que son enviados a la máquina virtual, no depende de una arquitectura en especifico. 
  • Portable: Al ser de arquitectura neutral es altamente portable, es decir una aplicación creada para un computador con ciertas características de hardware, puede ser ejecutado en un computador con más o menos características de hardware que el computador donde fue desarrollada la aplicación.
  • Alto desempeño: Al generar código interpretado, la ejecución no es tan rápida como el código compilado para una plataforma en particular. El compilador de Java suele ofrecer la posibilidad de compilar Bytecode en código máquina de determinadas plataformas, y según Sun el código generado resulta de una eficacia similar a compilaciones de C y C++.
  • Multihilos:  En este lenguaje de programación se pueden desarrollar aplicaciones en las que se genere ó ocurra más de una cosa a la vez. Java, apoyándose en un sistema de gestión de eventos basado en el paradigma de condición y monitores C.A.R. permite apoyar la conducta en tiempo real e interactiva en programas.
  • Dinámico: En controversia con C++ que exige que se compile de nuevo la aplicación al cambiar una clase madre Java utiliza un sistema de interfaces que permite aligerar esta dependencia. Teniendo como resultado, la facilidad con la que los programas puedan permitir nuevos métodos y variables en un objeto de biblioteca sin afectar a los objetos dependientes.
Para comprender las características del lenguaje de programación Java y conocer más sobre la Definición Java te presento el siguiente vídeo:


lunes, 4 de julio de 2016

iText PDF API Java Introducción

Estoy empezando con una serie de tutoriales para iText PDF API y cómo utilizarlo con aplicaciones Java. iText PDF API es una de las más populares de la API para trabajar con documentos PDF en Java. En este artículo, voy a ayudar a empezar con iText con un simple programa en Java y en los próximos tutoriales se puede aprender sobre la generación de documentos PDF complejos.

IText descarga o de instalación a través de Maven.

Usted puede descargar los frascos iText de su página web o utilizarla a través del repositorio central de Maven utilizando la siguiente dependencia.

Ejemplo de programa de Java iText PDF

Lo que sigue es un ejemplo de programa de Java hola mundo que crea un nuevo archivo PDF.

En este programa nuestro primer paso es crear una instancia de la clase de documento desde el núcleo itext.
A continuación, utilice la clase PDFWriter util para crear un archivo PDF fresco.
Seguido de la escritura de texto en el documento PDF recién creado como párrafo.
He añadido itextpdf-5.5.9.jar como la dependencia del proyecto.

Formulario de contacto JSP con JavaMail

En este artículo vamos a ver acerca de cómo desarrollar un formulario de contacto utilizando Java, API JavaMail y JSP. El ejemplo que vamos a desarrollar será una forma sensible y puede ser probado a través de Google Gmail SMTP.

Hemos aprendido anteriormente sobre cómo enviar correo electrónico utilizando Java con Gmail SMTP y API JavaMail. Vamos a utilizar la parte de envío de correo electrónico de ese artículo. Si usted está interesado en aprender acerca de cómo recibir correo electrónico utilizando Java se refiere el tutorial vinculado.

Este programa tiene un ejemplo JSP y una clase Java. El JSP es el front-end, así que ha scriplet que procesa los datos de correos e invoca la clase enviar correo. Este scriplet se puede mover hacia la trasladó a una clase de servlet y hecho en hacer

Formulario de contacto JSP:

A continuación se muestra el código JSP para el formulario de contacto. Tiene una hoja de estilo incluida la forma y está diseñado para ser sensible.

Clase-mail del remitente:


Después de la clase se utiliza para enviar el correo electrónico. Debe suministrar los parámetros necesarios en ella. He configurado de tal manera que podemos utilizar el servidor SMTP de Gmail de Google para enviar mensajes de correo electrónico. También puede utilizar cualquier otro servidor SMTP por abastecer los parámetros respectivos.

Este ejemplo de aplicación es un proyecto de Eclipse Web dinámica. Puede descargarlo desde abajo y de importación en su Eclipse. API Java Mail se añade como dependencia. El proyecto muestran un aspecto tan abajo.

domingo, 8 de noviembre de 2015

Clases Java

En esta sección, usted aprenderá cómo escribir sus propias clases Java, y cómo crear objetos de ellos. Usted ya ha hecho un comienzo de clases en la sección anterior. Pero vamos a entrar en más detalle ahora. En caso de que usted está confundido acerca de la diferencia entre un objeto y la clase, sin embargo, cuando hablamos de una clase que estamos hablando el propio código, el código que se sienta sin hacer nada.Cuando se pone el código para trabajar es un objeto.
Cuando se crea una clase, estás escribiendo código para hacer un trabajo en particular. Ese trabajo podría ser la de hacer con un empleado, pero no las cifras de ventas de la empresa, al mismo tiempo. Se podría escribir una clase separada para las cifras de ventas. De esa manera, se puede volver a utilizar la clase empleado en otro proyecto. Las cifras de ventas serían los datos redundantes.
Cuando usted está tratando de llegar a sus propias ideas para las clases que usted debe tener en cuenta esta cuestión redundancia y pregúntese: "¿Hay algún código de esta clase que no necesita estar aquí?"
Por ejemplo de esta sección, vamos a escribir una clase que se ocupa de los exámenes. Para nuestra clase de ejemplo, vamos a hacer las cosas simples. Nos registramos el nombre de la persona que toma el examen, que el examen era, la puntuación de 50, y una calificación.
Vamos a hacer un comienzo.
Crear un nuevo proyecto Java para esto. Llame a los paquetes de exámenes, y luego cambiar el nombre del método principal para ExamDetails. A continuación, debe tener el siguiente código:
La clase ExamDetails Java en blanco
Vamos a crear una segunda clase para manejar los datos de los exámenes. Así, en NetBeans, haga clic en Archivo en la barra de menú en la parte superior. En el menú Archivo, seleccioneNuevo archivo. Resaltar Java de la lista Categorías, y Java Class de la lista Tipos de archivo.Luego haga clic en Siguiente. En la siguiente pantalla, introduzca StudentResults como el nombre de la clase. Luego haga clic en Finalizar. NetBeans creará una segunda clase en su proyecto. Puede eliminar cualquier comentario por defecto.

Al pasar varios valores a los Métodos

Puede pasar más de un valor a sus métodos. Agregue el siguiente método a la clase MyMethods:
Un método Java con dos parámetros
Todo este método es imprimir algo. Entre los paréntesis del nombre del método tenemos dos valores, una variable de cadena llamada laCadena y una variable int llamada Aval. Cuando llamamos a este método, necesitamos una cadena primero y luego un número. Trate de hacerlo al revés y obtendrá mensajes de error.
Vuelve a tu clase TestMethods y hacer la siguiente llamada al método:
test1.print_text ("El valor era", aVal2);
Una vez más, la print_text método debe aparecer en la lista de NetBeans emergente.
Método añade a la lista
Los valores (parámetros) que nosotros especificamos están entre los paréntesis, junto con el método de retorno, nula.
Pero la ventana de codificación principal ahora debería tener este aspecto:
Todo el código Java de nuestro método principal
Los dos valores que estamos pasando por encima están separados por una coma. Observe que el valor interior de aVal2 está siendo pasado por alto. Sin embargo, el nombre de la variable en el interior de los paréntesis de print_text se llama aval. Aunque los dos nombres de las variables son diferentes, esto no importa. Lo que están haciendo es pasar valores sobre el método. Así que la variable Aval va a terminar con el mismo valor que aVal2.
Si ejecuta su programa ahora, debería ver lo siguiente en la ventana de salida:
Ventana Salida
Dejaremos métodos no por el momento. Vamos a estar escribiendo más métodos a medida que avanzamos, por lo que hay que conseguir un montón de práctica. La siguiente sección es sobre Clases - Programación Orientada a Objetos.

Pasar valores a sus métodos de Java

Puede pasar valores a sus métodos de manera que se puede hacer algo con este valor. Ese valor va entre los paréntesis del método.
Cambie de nuevo a tu clase MyMethods. Ahora agregue el segundo de nuestros métodos totales:
Código Java que muestra un método con un parámetro
Ahora tenemos dos métodos con el mismo nombre: el total. La diferencia entre los dos es que este nuevo tiene un valor entre los paréntesis. Java le permite hacer esto, y se llama sobrecarga de métodos. Usted puede tener tantos métodos con el mismo nombre que desea, con cualquier valor de retorno. Sin embargo, no se puede tener el mismo tipo de variables entre los paréntesis.Así que no se puede tener dos métodos totales que devuelven valores int con ambos tienen valores int entre los paréntesis. No se puede hacer esto, por ejemplo:
int totales (int unNumero) 
{int a_Value = unNumero + 20;
volver 
a_Value;}
int totales (int unNumero) 
{int a_Value = unNumero + 50;
volver 
a_Value;}
Aunque los dos métodos de hacer cosas diferentes, que tienen las mismas cabeceras de método.
Antes de probar el nuevo método, añadir algunos comentarios directamente sobre el método:
Javadoc comentarios añadidos con el método
Vas a ver lo que los comentarios pueden hacer en un momento. Pero el param en los comentarios de arriba es la abreviatura de parámetro. Un parámetro es el término técnico para el valor entre los paréntesis de sus cabeceras de método. Nuestro parámetro se llama unNumero, y tiene un valores enteros. Observe el uso del carácter @ antes param y retorno.
Todo lo que estamos haciendo con el método en sí está pasando es un valor entero y la adición de 20 a este valor pasado. El valor de retorno es el total de los dos.
Ahora regrese a su código y añadir la siguiente línea:
int aVal2 = test1.total (30);
Tan pronto como se escribe el punto después de su test1 objeto, verá de nuevo la lista emergente. Su nuevo método total será en él. Haga clic en el nuevo método para resaltarlo y NetBeans mostrará lo siguiente:
Se muestran los comentarios Javadoc
Los comentarios que hemos añadido ahora se muestran en el cuadro azul debajo de la lista de métodos. Cualquier otra persona que viene a través de su método debe ser capaz de averiguar lo que hace. Losparam yreturn líneas de los comentarios están completadas, e hicieron negrita.
Pero una vez que haya agregado el método Total2, escriba el número 30 entre los paréntesis. A continuación, escriba un punto y coma para finalizar la línea. Usted principal método ahora debería tener este aspecto:
Una nueva llamada al método desde el programa principal
El 30 entre los paréntesis del nuevo método totales serán entregados y se coloca en la variable unNumero, que está en los paréntesis de la cabecera del método:
Los valores que se entregan con el método
Una vez que haya entregado el valor más, el método puede ir a trabajar.
Añadir una línea de impresión a su código:
System.out.println ("Método result2 =" + aVal2);
A continuación, ejecute su programa. La ventana de resultados debe mostrar lo siguiente:
Ventana de salida para el código de seguridad
Así que nuestro nuevo método total se añadieron 30 a 20, y luego regresó la respuesta a la variable llamada aVal2.
En la siguiente lección, usted aprenderá cómo pasar más de un valor a sus métodos.