¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Java
  3. Presentación
Extrait - Java Los fundamentos del lenguaje (con ejercicios corregidos)
Extractos del libro
Java Los fundamentos del lenguaje (con ejercicios corregidos) Volver a la página de compra del libro

Presentación

Introducción

Java ha existido desde hace más de veinte años. Fue creado en 1995 por la empresa Sun Microsystems. Esta empresa fue comprada por Oracle en 2009. Por lo tanto, Java ahora es propiedad de Oracle.

¿Qué es Java?

  • Ante todo, es un lenguaje orientado a objetos. Por lo tanto, el lenguaje Java permite escribir programas.

  • En segundo lugar, es una plataforma de desarrollo. Está compuesta por un conjunto de bibliotecas, un conjunto de especificaciones (JSR - Java Specification Requests) que describen los diferentes API que forman la plataforma y un conjunto de herramientas para compilar, ejecutar, documentar, etc., sus programas. El conjunto forma el JDK (Java SE Development Kit).

En realidad, hay varias plataformas.

La plataforma básica se llama Java SE (Java Standard Edition), como se indicó anteriormente. Cumple con la mayoría de las necesidades.

La segunda plataforma es la plataforma Java EE. Su objetivo es permitir la creación de aplicaciones distribuidas y, en particular, aplicaciones web. Esta plataforma se basa en la plataforma Java SE, pero también en software de terceros, los servidores de aplicaciones.

Desde septiembre de 2017 y la versión Java EE 8, la plataforma se ha vendido a la fundación Eclipse. La plataforma ahora se llama Jakarta EE y la versión actual disponible es lakarta EE9.

La última plataforma se llama Java Embedded. Estrictamente...

Historia

1. ¿Por qué Java?

Bill Joy, ingeniero de Sun Microsystems, y su equipo de investigadores trabajaban en el proyecto «Green», que consistía en desarrollar aplicaciones destinadas a una amplia variedad de periféricos y sistemas embebidos (en particular, teléfonos móviles y televisores interactivos).

Convencidos de las ventajas de la programación orientada a objetos (POO), optaron por desarrollar en C++, que ya había demostrado sus capacidades.

Pero, para este tipo de proyecto, C++ mostró pronto sus lagunas y sus límites. En efecto, aparecieron numerosos problemas de incompatibilidad con las diferentes arquitecturas físicas (procesadores, tamaño de memoria) y los sistemas operativos encontrados, así como también a nivel de la adaptación de la interfaz gráfica de las aplicaciones y de la interconexión entre los diferentes dispositivos.

Debido a las dificultades encontradas con C++, era preferible crear un nuevo lenguaje basado en una nueva plataforma de desarrollo. Dos desarrolladores de Sun, James Gosling y Patrick Naughton, se pusieron manos a la obra.

La creación de este lenguaje y plataforma se inspiró en las interesantes funcionalidades propuestas por otros lenguajes tales como C++, Eiffel, Smalltalk, Objective C, Cedar/ Mesa, Ada, Perl. El resultado es una plataforma y un lenguaje idóneos para el desarrollo...

Las características del lenguaje Java

Sun caracteriza a Java como un lenguaje sencillo, orientado a objetos, distribuido, interpretado, robusto, securizado, independiente de las arquitecturas, portable, eficaz, multitarea y dinámico.

Dichas características son el resultado del manual escrito en mayo de 1996 por James Gosling y Henry McGilton y disponible en la dirección siguiente: http://www.oracle.com/technetwork/java/langenv-140151.html

Vamos a explicar detalladamente cada una de estas características.

1. Sencillo

La sintaxis de Java es similar a la de los lenguajes C y C++, pero evita características semánticas que los vuelven complejos, confusos y poco seguros: 

  • En Java solo existen tres tipos primitivos: los numéricos (enteros y reales), el tipo carácter y el tipo booleano. Todos los tipos numéricos están firmados. 

  • En Java las tablas y las cadenas de caracteres son objetos, lo que facilita su creación y su manipulación.

  • En Java el programador no tiene que preocuparse de la gestión de la memoria. Un sistema llamado «recolector de basura» (garbage collector) se encarga de asignar la memoria necesaria a la hora de crear objetos y de liberarla cuando estos ya no se referencian en el dominio del programa (cuando ninguna variable apunta al objeto).

  • En Java no existen preprocesadores ni archivos de encabezamiento. Las instrucciones define de C se sustituyen por constantes en Java y las instrucciones typedef de C lo hacen por clases.

  • En C y C++ se definen estructuras y uniones para representar tipos de datos complejos. En Java, se crean instancias de clases para representar tipos de datos complejos.

  • En C++ una clase puede heredar de otras clases, lo que puede generar problemas de ambigüedad. Con el fin de evitar estos problemas, Java solo autoriza la herencia simple, pero aporta un mecanismo de simulación de herencia múltiple mediante la implementación de una o varias interfaces.

  • En Java no existe la famosa instrucción goto, simplemente porque aporta una complejidad a la lectura de los programas y porque a menudo se puede prescindir de esta instrucción escribiendo un código más limpio. Además, en C y C++ se suele utilizar el goto para salir de bucles anidados. En Java se utilizarán las instrucciones...

La plataforma Java SE

La plataforma Java SE (con sus múltiples aspectos), se puede representar de manera resumida por el siguiente esquema:

images/cap1_1.png

La plataforma instalada en el puesto de un desarrollador es el JDK (Java Development Kit). Ofrece API específicas, pero sobre todo las herramientas de ayuda al desarrollo, como el compilador javac. El JDK incorpora el JRE (Java Runtime Environment).

La plataforma instalada en el puesto de destino (en el que se debe ejecutar el programa) es el JRE. Ofrece la API Java y las herramientas necesarias en el entorno de ejecución, como la herramienta java, que permite lanzar la ejecución del programa de Java. La JVM (Java Virtual Machine) forma parte integrante del JRE. Permite la ejecución efectiva del programa de Java que se pasa como argumento de la herramienta java.

Las siguientes secciones presentan más en detalle estos diferentes aspectos de la plataforma.

1. La máquina virtual de Java (JVM)

La máquina virtual es la base de la plataforma Java. Es necesaria para la ejecución de los programas de Java. La JVM está disponible para muchos tipos de ordenadores y de sistemas operativos.

La máquina virtual se encarga:

  • De cargar las clases y el bytecode incluidos: cuando un programa invoca la creación de objetos o invoca miembros de una clase, la JVM tiene como misión cargar el bytecode que se va a interpretar.

  • De la gestión de la memoria: la JVM se encarga completamente de la gestión de los punteros y, por lo tanto, de cada referencia hecha a un objeto. Este proceso permite también a la JVM encargarse de la liberación automática de la memoria (recolector de basura) en cuanto sale del dominio del programa, es decir, cuando ninguna variable hace referencia a él.

  • De la seguridad: es una de las operaciones más complejas realizadas por la JVM. Al cargar el programa, comprueba que no se llama a memoria no inicializada, que no se efectúan conversiones de tipos ilegales y que el programa no manipula punteros de memoria.

  • De la interfaz con el código nativo (por ejemplo, código escrito en lenguaje C): la mayoría de las API básicas de Java necesitan código nativo que viene con el JRE con el fin de interactuar con el sistema anfitrión. También se puede utilizar este proceso para acceder a periféricos...

Las diferentes implementaciones de la plataforma

Hay disponibles dos implementaciones de la plataforma JAVA SE: Oracle JDK (u Oracle Java SE) y OpenJDK. La diferencia radica en la disponibilidad de herramientas avanzadas y soporte específico para la implementación de Oracle JDK a cambio de una suscripción mensual. Por supuesto, es posible utilizarla de manera gratuita según los términos de la nueva licencia llamada Oracle No-Fee Terms and Conditions (NFTC).

images/cap1_pag20.png

Este es un cambio de rumbo, porque desde la versión 11, ahora solo era posible usar la plataforma Oracle JDK de forma gratuita para crear prototipos, probar y aprender. Para cualquier uso profesional, es necesario activar una suscripción mensual.

La funcionalidad del lenguaje es idéntica entre las dos plataformas. La implementación de Oracle JDK se basa en la implementación de OpenJDK.

El entorno de desarrollo

El propósito de esta sección es describir los pasos principales para configurar un entorno de desarrollo operativo, compuesto por los siguientes elementos en un sistema operativo Windows y Linux (Ubuntu 20.04):

  • El JDK (para elegir entre OpenJDK y Oracle JDK),

  • Eclipse IDE,

  • El servidor de bases de datos MySQL.

1. Instalación del JDK en Windows

a. Instalación de la plataforma OpenJDK

Para instalar la plataforma OpenJDK, siga las siguientes etapas:

 Acceda a la página de descarga https://jdk.java.net/18.

Aparece la siguiente pantalla:

images/cap1_pag21.png

 Descargue el archivo adaptado a su SO (por ejemplo, Windows/x64). Observe la ausencia de instalador.

 Descomprima el archivo en el directorio que elija y la instalación termina.

Cuando haya una nueva versión disponible, la descarga de la versión deseada siempre será posible en la siguiente dirección: https://jdk.java.net/archive

b. Instalación de la plataforma Oracle JDK

Para instalar la plataforma Oracle JDK, siga estas etapas:

La pantalla siguiente debe aparecer, después de posicionarse en la pestaña Windows:

La versión 18.X.X actual está disponible para su descarga. En el momento de escribir este libro, la versión es la 18.0.1.

images/cap1_pag23.png

 En el ámbito de Windows, puede seleccionar el instalador llamado x64 installer (jdk-18.0.1_windows-x64_bin.exe).

 Ejecute el instalador y pase las etapas siguientes:

images/cap1_pag24.png

 Pulse en Next.

images/cap1_pag24_b.png

 Modifique eventualmente el directorio de instalación. Por defecto, el valor es C:\Program Files\Java\jdk-18.0.1\. A continuación pulse Next para arrancar la instalación.

images/cap1_pag25.png

 La visualización de esta pantalla indica el éxito de la instalación. Pulse Close. Esta etapa ha terminado.

c. Configuración de las variables de entorno

Para usar herramientas de desarrollo como javac.exe o java.exe sin la ruta completa al ejecutable, debe agregar el directorio que contiene estos ejecutables a la variable de entorno PATH. Este directorio se corresponde con el directorio \bin de la instalación del JDK. El directorio de instalación del JDK se puede representar mediante la variable de entorno JAVA_HOME. Esta variable se utiliza por un gran número de aplicaciones.

En conclusión...

La javadoc

La plataforma Java SE viene con contenido muy popular: javadoc.

Javadoc es esencial para cualquier persona que quiera escribir un programa en Java. Proporciona documentación exhaustiva de todas las clases, interfaces, etc., que constituyen la API de Java. Esto permite al desarrollador hallar respuestas a sus dudas.

Es posible consultar la javadoc desde un navegador o desde un EDI como Eclipse.

1. Consulta desde un navegador

La javadoc es accessible desde la siguiente dirección: https://docs.oracle.com/en/java/javase/18/docs/api

Es posible descargarla en la siguiente dirección para acceder en local: https://www.oracle.com/java/technologies/javase-jdk18-doc-downloads.html

images/cap1_pag65_b.png

 Acepte los términos de la licencia.

 Descargue el archivo.

 Descomprímalo en el directorio de su elección.

 Sitúese en el subdirectorio /docs/api y haga doble clic en el archivo index.html

La página de bienvenida es la siguiente:

images/cap1_pag66.png

Esta página lista el conjunto de módulos que componen la plataforma Java SE. Estos módulos se agrupan en dos categorías:

  • Los módulos de la plataforma Java SE (que constituyen la API de Java). El número de estos módulos debe comenzar con la palabra java. El contenido de este libro se basará en parte de esta API.

  • Los módulos adicionales del JDK (que constituyen la API JDK). El número de estos módulos debe comenzar...

Primer programa

Es tentador crear su primer programa usando Eclipse u otro EDI de su elección. Sin embargo, para comprender completamente los mecanismos de creación de un programa, es necesario llevar a cabo los diferentes pasos de forma manual, antes de delegar este trabajo a una herramienta de terceros.

1. Escritura del código

Un programa de Java es un conjunto de archivos de texto de extensión .java. El programa más pequeño contiene un único archivo de Java.

El nombre de un archivo de Java se corresponde con el nombre de la clase de Java que contiene.

El archivo PrimerPrograma.java contiene la declaración de una clase llamada PrimerPrograma. La estructura de este archivo es la siguiente:

public class PrimerPrograma  
{  
   ...  
} 

Atención, Java es sensible a la diferencia entre mayúsculas y minúsculas.

Un programa de Java debe disponer de un método particular que se corresponde con el punto de entrada del programa. Este método se llama main y tiene obligatoriamente la siguiente estructura:

public static void main(String[] args)  
{  
   ...  
} 

Dentro de este método, es posible escribir el programa.

El programa más clásico consiste en mostrar un mensaje. La instrucción para realizar esta tarea es la siguiente:

System.out.println("Hola a todo el mundo"); 

El primer programa va a tener la estructura global siguiente:

public class PrimerPrograma  
{  
   public static void main(String[] args)  
   {  
       System.out.println("Hola a todo el mundo");  
   }  
}...

Conclusión

Como resultado de la lectura de este capítulo, está listo para abordar con tranquilidad el estudio del lenguaje Java y crear sus primeros programas.