===== Introducción a la plataforma Java =====
{{ java-logo.png?100 }}
==== La plataforma Java ====
=== Características principales ===
* Lenguaje de propósito general
* Lenguaje Orienta a Objetos
* Multiplataforma
* Lenguaje interpretado (por su máquina virtual) pero es compilado previamente
* Además del lenguaje, se proporciona toda una plataforma sobre la que se puede desarrollar (incluso con otros lenguajes)
=== Componentes principales ===
* El compilador de Java (javac)
* La máquina virtual de Java (JVM)
==== La máquina virtual (JVM: Java Virtual Machine) ====
Los principales componentes de la Java Virtual Machine son:
* **Java Stack**: Zona de memoria donde se almacenan las llamadas a métodos y las variables locales y referenciadas
* **Java Heap**: Zona de memoria donde se almacenan los objetos creados
* **Garbage collector** (Recolector de basura): Se encarga de liberar aquellos objetos que ya no es necesario mantener en memoria (sin que el programador tenga que hacer nada)
==== Kit de desarrollo/ Entorno de ejecución ====
=== JDK ===
* Compilador java (javac):
* La JVM y el comando java para ejecutar las aplicaciones
* Utilidad para empaquetar aplicaciones (jar): Biblioteca de clases
* Lo necesita cualquier programador que quiera desarrollar aplicaciones en lenguaje Java
=== JRE ===
* No incluye las herramientas javac y jar
* Lo necesita cualquier usuario que quiera ejecutar aplicaciones Java en su equipo
=== ¿Qué incluyen JDK y JRE? ===
==== Preparación del entorno de desarrollo ====
=== Software necesario ===
* **JDK**: [[ https://adoptium.net | Proyecto Adoptium]]
* **IDE**: [[https://www.jetbrains.com/idea/download|IntelliJ IDEA]] (Suficiente con la versión //Community//)
=== ¿Qué versión de Java debería descargarme? ===
----
(c) 2023 Santiago Faci