JAVA
¿Qué es Java?
Java es un lenguaje de programación y una plataforma informática que fue comercializada por primera vez en 1995 por sun Microsistemas
Java es una plataforma informática de lenguaje de programación creada por Sun Microsystems en 1995. Ha evolucionado desde sus humildes comienzos hasta impulsar una gran parte del mundo digital actual, ya que es una plataforma fiable en la que se crean muchos servicios y aplicaciones. Los nuevos e innovadores productos y servicios digitales diseñados para el futuro también siguen basándose en Java.
Aunque la mayoría de las aplicaciones Java modernas combinan el tiempo de ejecución y la aplicación de Java, todavía existen algunas aplicaciones e incluso sitios web que no funcionan sin instalar Java para escritorio. El sitio web Java.com está pensado para consumidores que todavía necesitan Java en sus aplicaciones de escritorio, sobre todo las aplicaciones que tienen como destino Java 8. Los desarrolladores y los usuarios que quieran aprender sobre programación Java deben consultar el sitio web.
Historia
Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en 1991. El equipo (Green team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road, Menlo Park (California), para desarrollarlo.
El lenguaje se denominó inicialmente Oak(por un roble que había fuera de la oficina de Gosling), luego pasó a llamarse green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas, y finalmente se le renombró java.
Es frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus diseñadores: James Gosling, Arthur Van Hoff y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("simplemente otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la de que Java debe su nombre a un tipo de café disponible en la cafetería cercana; de ahí que el icono de Java sea una taza de café caliente. Un pequeño signo que da fuerza a esta teoría es que los cuatro primeros bytes (el número mágico) de los archivos.class que genera el compilador, son en hexadecimal, 0xCAFEBABE. A pesar de todas estas teorías, el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gage, James Gosling, Patrick Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaicpropiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.
Versiones
Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP (Java Community Process), que usa Java Specification Requests (JSRs) para proponer y especificar cambios en la plataforma Java. El lenguaje en sí mismo está especificado en la Java Language Specification (JLS), o Especificación del Lenguaje Java. Los cambios en los JLS son gestionados en JSR 901.
- JDK 1.0 (23 de enero de 1996) — Primer lanzamiento: comunicado de prensa
- JDK 1.1 (19 de febrero de 1997) — Principales adiciones incluidas: comunicado de prensa
- J2SE 1.2 (8 de diciembre de 1998) — Nombre clave Playground. Esta y las siguientes versiones fueron recogidas bajo la denominación Java 2 y el nombre "J2SE" (Java 2 Platform, Standard Edition) reemplazó a JDK para distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2 Platform, Micro Edition). Otras mejoras añadidas incluían: comunicado de prensa
- la palabra reservada (keyword)
strictfp - reflexión en la programación
- la API gráfica (Swing) fue integrada en las clases básicas
- la máquina virtual (JVM) de Sun fue equipada con un compilador JIT (Just inTime) por primera vez
- Java Plug-in
- Java IDL, una implementación de IDL (Lenguaje de Descripción de Interfaz) para la interoperabilidad con CORBA
- Colecciones (Collections)
- la palabra reservada (keyword)
- J2SE 1.3 (8 de mayo de 2000) — Nombre clave Kestrel. Los cambios más notables fueron: comunicado de prensa lista completa de cambios
- la inclusión de la máquina virtual de HotSpot JVM (la JVM de HotSpot fue lanzada inicialmente en abril de 1999, para la JVM de J2SE 1.2)
- RMI fue cambiado para que se basara en CORBA
- JavaSound
- se incluyó el Java Naming and Directory Interface (JNDI) en el paquete de bibliotecas principales (anteriormente disponible como una extensión)
- Java Platform Debugger Architecture(JPDA)
- J2SE 1.4 (6 de febrero de 2002) — Nombre clave Merlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java como JSR 59. Los cambios más notables fueron: comunicado de prensalista completa de cambios
- Palabra reservada
assert(Especificado en JSR 41.) - Expresiones regulares modeladas al estilo de las expresiones regulares Perl
- Encadenación de excepciones Permite a una excepción encapsular la excepción de bajo nivel original.
- non-blocking NIO (New Input/Output) (Especificado en JSR 51.)
- Logging API (Specified in JSR 47.)
- API I/O para la lectura y escritura de imágenes en formatos como JPEG o PNG
- Parser XML integrado y procesador XSLT (JAXP) (Especificado en JSR 5 y JSR 63.)
- Seguridad integrada y extensiones criptográficas (JCE, JSSE, JAAS)
- Java Web Start incluido (El primer lanzamiento ocurrió en marzo de 2001 para J2SE 1.3) (Especificado en JSR 56.)
- Palabra reservada
- J2SE 5.0 (30 de septiembre de 2004) — Nombre clave: Tiger. (Originalmente numerado 1.5, esta notación aún es usada internamente.) Desarrollado bajo JSR 176, Tiger añadió un número significativo de nuevas características comunicado de prensa
- Plantillas (genéricos) — provee conversión de tipos (type safety) en tiempo de compilación para colecciones y elimina la necesidad de la mayoría de conversión de tipos (type casting). (Especificado por JSR 14.)
- Metadatos — también llamados anotaciones, permite a estructuras del lenguaje como las clases o los métodos, ser etiquetados con datos adicionales, que puedan ser procesados posteriormente por utilidades de proceso de metadatos. (Especificado por JSR 175.)
- Autoboxing/unboxing — Conversiones automáticas entre tipos primitivos(Como los
int) y clases de envoltura primitivas (Como Integer). (Especificado por JSR 201.) - Enumeraciones — la palabra reservada
enumcrea una typesafe, lista ordenada de valores (comoDia.LUNES,Dia.MARTES, etc.). Anteriormente, esto solo podía ser llevado a cabo por constantes enteras o clases construidas manualmente (enum pattern). (Especificado por JSR 201.) - Varargs (número de argumentos variable) — El último parámetro de un método puede ser declarado con el nombre del tipo seguido por tres puntos (e.g.
void drawtext(String... lines)). En la llamada al método, puede usarse cualquier número de parámetros de ese tipo, que serán almacenados en un array para pasarlos al método. - Bucle
formejorado — La sintaxis para el bucleforse ha extendido con una sintaxis especial para iterar sobre cada miembro de un array o sobre cualquier clase que implemente Iterable, como la clase estándar Collection, de la siguiente forma: - void displayWidgets (Iterable<Widget> widgets) {for (Widget w : widgets) {w.display();}}
- No oficiales:
- NIO2.
- Java Module System.
- Java Kernel.
- Nueva API para el manejo de Días y Fechas, la cual reemplazará las antiguas clases Date y Calendar.
- Posibilidad de operar con clases BigDecimal usando operandos.
- Java SE 8 — lanzada en marzo de 2014. Cabe destacar:
- Incorpora de forma completa la librería JavaFX.
- Diferentes mejoras en seguridad.
- Diferentes mejoras en concurrencia.
- Añade funcionalidad para programación funcional mediante expresiones Lambda.
- Mejora la integración de JavaScript.
- Nuevas API para manejo de fechas y tiempo (date - time).
- Java SE 9 — lanzada el 21 de septiembre del 2017.
- Java SE 10 — lanzada el 20 de marzo de 2018.
- Java SE 11 — lanzada el 25 de septiembre de 2018.
- Java SE 12 — lanzada el 19 de marzo de 2019.
- Java SE 15 — lanzada el 15 de septiembre de 2020.
- Java SE 16 — lanzada el 18 de marzo de 2021.
- Java SE 17 — lanzada el 14 de septiembre de 2021. Como mínimo tendrá soporte hasta septiembre de 2024 al ser una versión LTS (Long Term Support - Soporte a largo plazo).
- Java SE 18 — lanzada el 22 de marzo de 2022.
- Java SE 19 — lanzada el 20 de septiembre de 2022.
- Java SE 20 — lanzada el 21 de marzo de 2023.
- Java SE 21 — lanzada el 19 de septiembre de 2023. Como mínimo tendrá soporte hasta septiembre de 2026 al ser una versión LTS (Long Term Support - Soporte a largo plazo).
En el 2005 se calculaba en 4,5 millones el número de desarrolladores y 2500 millones de dispositivos habilitados con tecnología Java.
La clase Hola extiende (extends) es heredera de la clase GenericServlet. Esta clase proporciona la interfaz para que el servidor le pase las peticiones al servlet y el mecanismo para controlar el ciclo de vida del servlet.
La clase Hola sobrecarga el método service (ServletRequest, ServletResponse), definido por la interfaz servlet para acceder al manejador de la petición de servicio. El método service()recibe un objeto de tipo ServletRequest que contiene la petición del cliente y un objeto de tipo ServletResponse, usado para generar la respuesta que se devuelve al cliente. El método service() puede lanzar(throws) excepciones de tipo ServletException e IOException si ocurre algún tipo de anomalía.
El método setContentType (String) en el objeto respuesta establece el tipo de contenido MIME a "text/html", para indicar al cliente que la respuesta a su petición es una página con formato HTML. El método getWriter() del objeto respuesta devuelve un objeto de tipo PrintWriter, usado como una tubería por la que viajarán los datos al cliente. El método println (String) escribe la cadena "¡Hola, mundo!" en la respuesta y finalmente se llama al método close() para cerrar la conexión, que hace que los datos escritos en la tubería o stream sean devueltos al cliente.
Aplicaciones con interfaz
Swing es la biblioteca para la interfaz gráfica de usuario avanzada de la plataforma Java SE.
// Hola.javaimport javax.swing.*;public class Hola extends JFrame {Hola() {setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);add(new JLabel("¡Hola, mundo!"));pack();}public static void main(String[] args) {new Hola().setVisible(true);}}
Buen
ResponderBorrarBuen blog, compañero
ResponderBorrar