1.
INTRODUCCIÓN
Curso Introducción a Java SE
Índice
• Introducción
• ¿Qué es Java?
• Origen y características
• Versiones
• Ediciones Java
• La Máquina Virtual Java
• Entornos Java
• Funcionamiento
• Recolector de basura
• Herramientas de desarrollo
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Introducción
La informática se dedica a automatizar procesos y a resolver problemas conocidos de forma
autónoma y en la mayoría de los casos más rápido que la mente humana.
Los encargados de solucionar estos problemas son los programas y algoritmos. Los programas
son una secuencia de órdenes que se ejecutan en un orden que nos devuelve una solución.
Casi todos los problemas que resuelve un ordenador son matemáticos.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Introducción
Algunos problemas podrían ser:
• Sumar la cantidad de precipitaciones durante un año en toda España.
• Hacer un cálculo de la presión necesaria para que se rompa el casco de un barco.
• Buscar una palabra en un texto.
• Contar las repeticiones de cada palabra en un texto.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Introducción
Cada uno de estos problemas se pueden solucionar mediante un algoritmo o conjunto de
operaciones matemáticas:
• Sumar la cantidad de precipitaciones durante un año en toda España:
• Es una sencilla suma de una lista de n elementos.
• Hacer un cálculo de la presión necesaria para que se rompa el casco de un barco:
• Aplicar la fórmula de la presión de rotura sobre el material indicado.
• Buscar una palabra en un texto:
• Hay que recorrer un texto con n palabras y comparar una a una con la palabra que
deseamos encontrar.
• Contar las repeticiones de cada palabra en un texto:
• Primero ordenamos la lista de palabras alfabéticamente para más tarde recorrer la lista y
apuntar el valor de repeticiones de cada palabra en otra lista.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Introducción
Cada problema puede resolverse dividiendo o simplificando en problemas más sencillos hasta
llegar a una simple operación. La suma de todos estos pequeños problemas dan la solución del
total. Puede que existan varias formas de resolver el mismo problema. Muchas veces solo
necesitamos saber lo que hace un programa y no cómo lo hace.
Debemos de tener en cuenta que los ordenadores tienen sus limitaciones. No pueden crear una
receta de cocina.
Cada ordenador es un sistema con un procesador (CPU) encargado de hacer los cálculos y una
memoria donde almacena todos los datos con los que trabaja.
• La velocidad es limitada
• La memoria se puede llenar. Es necesario vaciarla cada cierto tiempo.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
¿Qué es Java?
Java es un lenguaje de programación y también una plataforma informática:
• Lenguaje de programación: lenguaje multiparadigma (programación estructurada, orientada a
objetos, funcional), rápido, seguro y fiable que permite a los desarrolladores crear varios tipos
de aplicaciones software:
• Aplicaciones de consola: programas que se ejecutan a través de la consola.
• Aplicaciones cliente: programa de ordenador: calculadora, procesador de texto, hojas de
cálculo…
• Aplicaciones cliente-servidor: aplicaciones cliente que se conectan a un servidor remoto
para obtener/almacenar información.
• Aplicaciones de servidor: aplicaciones web como las que podemos utilizar hoy en día a
través de nuestros navegadores.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
¿Qué es Java?
Java es un lenguaje de programación y también una plataforma informática:
• Plataforma informática que permite ejecutar aplicaciones desarrolladas en lenguaje Java u
otros lenguajes compilados a bytecode, es una máquina virtual encargada de la ejecución de
aplicaciones y un conjunto de bibliotecas estándar que permiten desarrollar esas aplicaciones.
En total se compone de tres bloques:
• El lenguaje de programación Java
• La máquina virtual Java (JVM)
• API que ofrece un conjunto de bibliotecas de clases estándar
• El objetivo de esta plataforma es permitir ejecutar programas independientemente del
hardware final, es decir, en cualquier dispositivo. De esta forma se evita tener que
reescribir todo el código del programa y tener que recompilar los programas en función
del procesador.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Origen y características
A comienzos de los años 1990 grupo de ingenieros de Sun Microsystems tenía que desarrollar un
lenguaje que se pudiera utilizar en electrodomésticos. Surge como necesidad para la
programación de dispositivos inteligentes. Filosofías:
• Write Once, Run Anywhere → Se puede ejecutar en múltiples sistemas operativos, es decir,
tiene una arquitectura neutra.
• Lenguaje de alto nivel, simple, fácil de aprender y usar, tomando lo mejor de otros lenguajes
de programación como C++.
• Usa el paradigma de Programación Orientada a Objetos (POO) → El objetivo de la POO es
hacer que los proyectos grandes sean fáciles de gestionar y manejar al diseñar el código en
paquetes llamados objetos que contienen comportamiento y estado, esto aumenta la calidad y
mejora el mantenimiento del código. La programación en java se basa en clases y objetos.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Origen y características
• Incluye soporte para trabajo en red.
• Permite ejecutar código en sistemas remotos de forma segura → Java RMI, permite invocar
métodos de manera remota, se trata de un mecanismo de comunicación de servidores en
aplicaciones distribuidas.
• Capacidad multihilo: permite ejecutar muchas funciones al mismo tiempo → Programación
concurrente, permite aprovechar los múltiples núcleos de los procesadores modernos y lograr
tiempos de ejecución menores.
• Case sensitive: Java es un lenguaje sensible a mayúsculas, por tanto es vital utilizar
correctamente las mayúsculas y minúsculas en el código. Buenas prácticas:
• Las clases empiezan por mayúscula
• Las variables se escriben en minúscula
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Origen y características
A raíz de esta necesidad se crea la plataforma de desarrollo Java y se publica el lenguaje de
programación Java en 1995. Desde entonces se ha convertido en uno de los lenguajes de
programación más populares.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Versiones
Desde 1995 se han liberando gradualmente nuevas
versiones con nuevas características que facilitan el uso de
este lenguaje de programación.
Cuando se refiere a versiones nos referimos a la versión de
producto, que internamente hace referencia a la versión
de desarrollo. Por ejemplo:
Versión de producto: Java 8
Versión desarrollo: Java 1.8
Ver versiones en OpenJDK.
Desde Java 9 se ha adoptado una filosofía de lanzamiento
que consiste en publicar nueva versión cada 6 meses.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Ediciones Java
• Java SE - Plataforma Java Standard Edition (antes J2SE): paquetes de clases de uso general,
utilizados en cualquier tipo de aplicación (tratamiento cadenas, colecciones, etc) y paquetes
para entornos gráficos.
• JDK
• JRE
• Java SE APIs
• Jakarta EE - Plataforma Java Enterprise Edition (antes Java EE y J2EE): clases e interfaces que
permiten la creación de aplicaciones empresariales, como por ejemplo aplicaciones web. Su
objetivo es que el desarrollador gane en productividad y poder desarrollar aplicaciones
complejas y escalables de forma sencilla.
• Java ME - Plataforma Java Micro Edition (antes J2ME): clases e interfaces orientadas a
dispositivos empotrados y dispositivos móviles (microcontroladores, sensores, pasarelas,
impresoras...)
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
La Máquina Virtual Java (JVM)
La JVM o Java Virtual Machine es el concepto central de la plataforma Java, es un procesador
virtual que ejecuta los programas escritos en lenguaje Java. El código Java para que sea ejecutado
antes tiene que compilarse, el resultado de esto es el bytecode. La JVM traduce ese bytecode en
instrucciones nativas que pueda ejecutar la plataforma donde se encuentra, es decir, el sistema
operativo.
De esta forma cualquier dispositivo sea cual sea su sistema operativo, al instalar Java se está
instalando una JVM específica para ese sistema operativo que sabe cómo traducir el bytecode a
las instrucciones necesarias que sean ejecutables por ese sistema.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Entornos Java
• JRE o Java Runtime Environment: es un paquete con todo lo necesario para ejecutar un
programa compilado de Java. Incluye la JVM, las bibliotecas de Java, y el comando java. Sólo
sirve para ejecutar un programa ya existente, no permite crear uno nuevo.
• JDK o Java Development Kit: es un SDK para Java, contiene todo lo necesario para ejecutar
programas pero también para crearlos, por tanto contiene: JRE, el compilador javac y
herramientas como javadoc, etc.
• SDK o Software Development Kit: consiste en un kit de desarrollo que provee APIs y
herramientas para facilitar el desarrollo de software. Este término SDK no hace referencia a
ningún lenguaje de programación en particular, cada lenguaje o plataforma podrá definir un
SDK y podrá tener un nombre concreto. En el caso del lenguaje de programación Java el kit de
desarrollo SDK se llama JDK.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Funcionamiento Java
Java es un lenguaje compilado y también interpretado:
• Compilado: Traducir el código fuente programado por el desarrollador en lenguaje de alto
nivel a bytecode o código intermedio.
• Interpretado: El bytecode es interpretado a código máquina.
• Código fuente: código programado por los desarrolladores y que se almacena en archivos
con la extensión .java
• Código binario bytecode: El compilador “javac” convierte esos archivos de código fuente a
código binario o bytecode generando archivos de extensión .class (si existe algún error
léxico, sintáctico, semántico en el código fuente entonces dará error)
• Código binario nativo: en la ejecución (con el comando “java”) los archivos .class o
bytecode se traduce al lenguaje máquina nativo para el procesador en el que se va a
ejecutar el programa. Es la JVM quien se encarga de interpretar el bytecode y compilarlo a
código nativo utilizando un compilador JIT (Just-In-Time)
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Recolector de basura
A diferencia de otros lenguajes de programación en java no nos preocupamos por liberar la
memoria. El encargado de hacerlo es el recolector de basura o Garbage Collector.
El desarrollador puede crear nuevos objetos que ocupan memoria, añadirles referencias o
quitárselas. En el momento que un objeto pierde todas sus referencias el recolector de basura se
encarga de liberar la memoria sujeta al mismo objeto.
El desarrollador se desentiende de la liberación de recursos y el código se simplifica. Evitamos
muchos errores ya que no es necesario acordarse de liberar la memoria (un error bastante
común).
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Herramientas de desarrollo
IDE - Integrated Development Environment: Herramienta que permite desarrollar en java con
ayudas tanto en parte gráfica, encontrar errores, compilación al vuelo…
Podemos compilar java directamente en nuestro computador pero es mucho más cómo utilizar
un IDE. Un IDE es una aplicación que instalamos en nuestro ordenador que nos ayuda mientras
desarrollamos aplicaciones. Existen varios IDEs disponibles de forma gratuita, siendo el más
recomendable IntelliJ IDEA:
• IntelliJ IDEA - [Link]
• Eclipse - [Link]
• NetBeans - [Link]
• VSCode - [Link]
Programa #EmpleoParaTodos de la Fundación Adecco | 2020
Herramientas de desarrollo
El siguiente paso será descargar la herramienta
IntelliJ IDEA e instalarla.
Una vez instalada, se inicializa y se crea un nuevo
proyecto java y en la opción Project SDK nos
ofrece la posibilidad de descargar la última
versión del JDK.
Una vez asociada se pulsa siguiente y nos da la
opción “Create Project from template”, si la
marcamos nos creará un proyecto con un archivo
java que podremos ejecutar y verificar que java
funciona correctamente en nuestro sistema.
Programa #EmpleoParaTodos de la Fundación Adecco | 2020