Introducción a Java

Java es el término general para el lenguaje de programación orientado a objetos Java y la plataforma Java, lanzado por Sun Microsystems en mayo de 1995. Fue desarrollado por James Gosling y sus colegas, y se lanzó oficialmente en 1995.

Posteriormente, Sun fue adquirida por Oracle Corporation, y Java se convirtió en un producto de Oracle.

Java se divide en tres sistemas:

  • JavaSE (J2SE) (Java2 Platform Standard Edition, edición estándar de la plataforma Java)
  • JavaEE (J2EE) (Java 2 Platform, Enterprise Edition, edición empresarial de la plataforma Java)
  • JavaME (J2ME) (Java 2 Platform Micro Edition, edición micro de la plataforma Java).

En junio de 2005, se celebró la conferencia JavaOne, y Sun anunció Java SE 6. En ese momento, las distintas versiones de Java habían sido renombradas para eliminar el número "2": J2EE pasó a llamarse Java EE, J2SE pasó a llamarse Java SE, y J2ME pasó a llamarse Java ME.


Características principales

  • El lenguaje Java es simple:

    La sintaxis del lenguaje Java es muy similar a la de C y C++, lo que facilita que la mayoría de los programadores lo aprendan y usen. Por otro lado, Java descarta aquellas características de C++ que rara vez se usan, son difíciles de entender y confusas, como la sobrecarga de operadores, la herencia múltiple y la conversión forzada de tipos automática. En particular, el lenguaje Java no utiliza punteros, sino referencias. También proporciona asignación y recuperación automática de espacio de memoria, de modo que los programadores no tienen que preocuparse por la gestión de la memoria.

  • El lenguaje Java está orientado a objetos:

    El lenguaje Java proporciona características orientadas a objetos como clases, interfaces y herencia. Por simplicidad, solo admite herencia simple entre clases, pero admite herencia múltiple entre interfaces, y admite el mecanismo de implementación entre clases e interfaces (la palabra clave es implements). El lenguaje Java admite totalmente el enlace dinámico, mientras que C++ solo usa enlace dinámico para funciones virtuales. En resumen, Java es un lenguaje de programación puramente orientado a objetos.

  • El lenguaje Java es distribuido:

    El lenguaje Java admite el desarrollo de aplicaciones de Internet. En la interfaz de programación de aplicaciones básica de Java hay una interfaz de programación de red (java net), que proporciona bibliotecas de clases para la programación de aplicaciones de red, incluyendo URL, URLConnection, Socket, ServerSocket, etc. El mecanismo RMI (activación de métodos remotos) de Java también es un medio importante para desarrollar aplicaciones distribuidas.

  • El lenguaje Java es robusto:

    El mecanismo de tipado fuerte de Java, el manejo de excepciones y la recolección automática de basura son garantías importantes de la robustez de los programas Java. La eliminación de los punteros es una decisión inteligente de Java. El mecanismo de verificación de seguridad de Java hace que Java sea más robusto.

  • El lenguaje Java es seguro:

    Java se usa a menudo en entornos de red; para ello, Java proporciona un mecanismo de seguridad para prevenir ataques de código malicioso. Además de las muchas características de seguridad que tiene el lenguaje Java, Java tiene un mecanismo de prevención de seguridad para las clases descargadas a través de la red (la clase ClassLoader), como asignar diferentes espacios de nombres para evitar reemplazar clases locales con el mismo nombre, verificación de bytecode, y proporciona un mecanismo de gestión de seguridad (la clase SecurityManager) para que las aplicaciones Java establezcan centinelas de seguridad.

  • El lenguaje Java es neutral respecto a la arquitectura:

    Los programas Java (archivos con extensión java) se compilan en la plataforma Java a un formato de bytecode neutral respecto a la arquitectura (archivos con extensión class), que luego puede ejecutarse en cualquier sistema que implemente esta plataforma Java. Este enfoque es adecuado para entornos de red heterogéneos y la distribución de software.

  • El lenguaje Java es portable:

    Esta portabilidad proviene de la neutralidad de la arquitectura. Además, Java especifica estrictamente la longitud de cada tipo de datos básico. El propio sistema Java también tiene una gran portabilidad: el compilador de Java está implementado en Java, y el entorno de ejecución de Java está implementado en ANSI C.

  • El lenguaje Java es interpretado:

    Como se mencionó anteriormente, los programas Java se compilan a formato de bytecode en la plataforma Java, y luego pueden ejecutarse en cualquier sistema que implemente esta plataforma Java. En tiempo de ejecución, el intérprete de Java en la plataforma Java interpreta y ejecuta estos bytecodes. Las clases necesarias durante la ejecución se cargan en el entorno de ejecución en la fase de enlace.

  • Java es de alto rendimiento:

    En comparación con los lenguajes de script de alto nivel interpretados, Java es ciertamente de alto rendimiento. De hecho, la velocidad de ejecución de Java se acerca cada vez más a la de C++ gracias al desarrollo de la tecnología del compilador JIT (Just-In-Time).

  • El lenguaje Java es multihilo:

    En el lenguaje Java, un hilo es un objeto especial que debe crearse mediante la clase Thread o sus subclases (o descendientes). Generalmente hay dos métodos para crear hilos: primero, usar un constructor con la forma Thread(Runnable) para envolver un objeto que implementa la interfaz Runnable como un hilo; segundo, derivar una subclase de la clase Thread y sobrescribir el método run, y el objeto creado con esa subclase es el hilo. Cabe señalar que la clase Thread ya implementa la interfaz Runnable, por lo que cualquier hilo tiene su método run, y el método run contiene el código que el hilo debe ejecutar. La actividad de un hilo está controlada por un conjunto de métodos. El lenguaje Java admite la ejecución simultánea de múltiples hilos y proporciona un mecanismo de sincronización entre hilos (la palabra clave es synchronized).

  • El lenguaje Java es dinámico:

    Uno de los objetivos de diseño del lenguaje Java es adaptarse a entornos dinámicos y cambiantes. Las clases que necesitan los programas Java pueden cargarse dinámicamente en el entorno de ejecución, y también pueden cargarse a través de la red. Esto también es beneficioso para la actualización del software. Además, las clases en Java tienen una representación en tiempo de ejecución que permite la verificación de tipos en tiempo de ejecución.


Historia del desarrollo

  • El 23 de mayo de 1995 nació el lenguaje Java.
  • En enero de 1996 nació el primer JDK: JDK1.0.
  • En abril de 1996, los 10 principales proveedores de sistemas operativos declararon que incorporarían la tecnología JAVA en sus productos.
  • En septiembre de 1996, aproximadamente 83,000 páginas web se crearon utilizando tecnología JAVA.
  • El 18 de febrero de 1997 se publicó JDK1.1.
  • El 2 de abril de 1997 se celebró la conferencia JavaOne, con más de 10,000 asistentes, estableciendo un récord mundial en conferencias similares en ese momento.
  • En septiembre de 1997, la comunidad JavaDeveloperConnection superó los 100,000 miembros.
  • En febrero de 1998, JDK1.1 fue descargado más de 2,000,000 veces.
  • El 8 de diciembre de 1998 se publicó la plataforma empresarial JAVA2, J2EE.
  • En junio de 1999, Sun publicó las tres versiones de Java: Edición Estándar (JavaSE, antes J2SE), Edición Empresarial (JavaEE, antes J2EE) y Edición Micro (JavaME, antes J2ME).
  • El 8 de mayo de 2000 se publicó JDK1.3.
  • El 29 de mayo de 2000 se publicó JDK1.4.
  • El 5 de junio de 2001, NOKIA anunció que vendería 100 millones de teléfonos móviles compatibles con Java para 2003.
  • El 24 de septiembre de 2001 se publicó J2EE1.3.
  • El 26 de febrero de 2002 se publicó J2SE1.4, y desde entonces la capacidad de cómputo de Java mejoró significativamente.
  • El 30 de septiembre de 2004 a las 18:00 PM, se publicó J2SE1.5, convirtiéndose en otro hito en la historia del desarrollo del lenguaje Java. Para mostrar la importancia de esta versión, J2SE1.5 pasó a llamarse Java SE 5.0.
  • En junio de 2005, se celebró la conferencia JavaOne, y Sun anunció Java SE 6. En ese momento, las distintas versiones de Java habían sido renombradas para eliminar el número "2": J2EE pasó a llamarse Java EE, J2SE pasó a llamarse Java SE, y J2ME pasó a llamarse Java ME.
  • En diciembre de 2006, Sun publicó JRE6.0.
  • El 20 de abril de 2009, Oracle adquirió Sun por 7.4 mil millones de dólares, obteniendo los derechos de autor de Java.
  • En noviembre de 2010, debido a la hostilidad de Oracle hacia la comunidad Java, Apache amenazó con retirarse del JCP.
  • El 28 de julio de 2011, Oracle publicó la versión oficial de Java7.0.
  • El 18 de marzo de 2014, Oracle publicó Java SE 8.
  • El 21 de septiembre de 2017, Oracle publicó Java SE 9.
  • El 21 de marzo de 2018, Oracle Corporation lanzó Java SE 10
  • El 25 de septiembre de 2018, se lanzó Java SE 11
  • El 20 de marzo de 2019, se lanzó Java SE 12

Herramientas de desarrollo de Java

En cuanto al lenguaje Java, procure que la memoria del sistema sea superior a 1 GB; las demás herramientas son las siguientes:

Una vez instaladas las herramientas anteriores, podemos ejecutar el primer programa de Java, "Hello World!"

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }

En el siguiente capítulo presentaremos cómo configurar el entorno de desarrollo de Java.

Otras extensiones