🧱
¿Qué es Java?
Java es un lenguaje de programación popular y potente, creado en 1995.
Es propiedad de Oracle y más de 3 mil millones Los dispositivos ejecutan Java.
Se utiliza para:
Aplicaciones móviles (especialmente aplicaciones de Android)
Aplicaciones de escritorio
Aplicaciones web
Servidores web y servidores de aplicaciones
Juegos
Conexión a la base de datos
¡Y mucho, mucho más!
¿Por qué utilizar Java?
Java funciona en diferentes plataformas (Windows, Mac, Linux, Raspberry
Pi, etc.)
Es uno de los lenguajes de programación más populares del mundo
Tiene una gran demanda en el mercado laboral actual
Es fácil de aprender y sencillo de usar
Es de código abierto y gratuito
Es seguro, rápido y potente
Cuenta con un enorme apoyo de la comunidad (decenas de millones de
desarrolladores)
Java es un lenguaje orientado a objetos que da una estructura clara a los
programas y permite reutilizar el código, reduciendo los costos de desarrollo
Como Java está cerca de C++ y C#, facilita que los programadores
cambien a Java o viceversa
Ejemplo de Java
Java se utiliza a menudo en tareas de programación cotidianas, como saludar a un
usuario:
Ejemplo
public class Main {
public static void main(String[] args) {
String name = "John";
[Link]("Hello " + name);
}
}
¿Cómo funciona Java?
Los lenguajes informáticos de alto nivel son más fáciles de leer, escribir y corregir,
pero sin duda debe haber un compilador entre el lenguaje de programación y la
máquina del ordenador que compile o interprete el código para que pueda
ejecutarse en un lenguaje que el ordenador entienda.
Java es un lenguaje portable que se puede ejecutar en cualquier sistema
operativo.
El código escrito en Java se compila en un formato especial llamado bytecode,
que luego se ejecuta en la máquina virtual Java (JVM). Esto significa que el código
Java se puede ejecutar en cualquier plataforma que tenga una JVM instalada, lo
que lo hace independiente del sistema operativo.
El programa Java consta de uno o varios archivos de código fuente
con extensión .java que contienen las instrucciones escritas en el lenguaje Java.
Estos archivos se compilan utilizando el compilador javac, generando archivos
con extensión .class que contienen el bytecode. Estos archivos de bytecode se
pueden ejecutar en cualquier plataforma con una JVM instalada.
Java también ofrece una gran cantidad de bibliotecas estándar para funciones
comunes, como el manejo de entrada/salida, la conectividad de red, y el desarrollo
de interfaz gráfica de usuario.
Estas bibliotecas están disponibles para todos los programas Java y se incluyen
automáticamente en la compilación y ejecución del programa.
En resumen, Java es un lenguaje de programación que se compila en bytecode y
se ejecuta en una máquina virtual, lo que permite que el código se ejecute en
cualquier plataforma con una JVM instalada, y ofrece un gran conjunto de
bibliotecas estándar para facilitar el desarrollo de aplicaciones.
Estructura básica de un programa en Java
¿Cuáles son las características principales de Java?
Como ya hemos comentado, Java es un lenguaje de programación de alto nivel,
de propósito general, que se utiliza para desarrollar aplicaciones para una
variedad de plataformas.
Algunas de las características principales de la plataforma y el lenguaje de
programación Java son:
Orientado a objetos: Es un lenguaje orientado a objetos, lo que significa
que se basa en el concepto de objetos y clases para organizar y estructurar
el código.
Multiplataforma: Es independiente de la plataforma, lo que significa que el
código Java se puede ejecutar en cualquier sistema operativo o dispositivo
compatible con Java sin necesidad de recompilar el código.
Seguro: Tiene características de seguridad integradas que ayudan a
proteger los sistemas contra amenazas externas.
Manejo automático de memoria: Libera automáticamente la memoria
utilizada por objetos que ya no se utilizan.
Multithreading: Permite la ejecución de varios hilos de ejecución en
paralelo, lo que permite a las aplicaciones realizar varias tareas al mismo
tiempo.
API’s integradas: Dispone de una gran cantidad de API’s (interfaz de
programación de aplicaciones) integradas, lo que permite a los
desarrolladores utilizar una variedad de funciones y herramientas para crear
aplicaciones.
Popular: Es uno de los lenguajes de programación más populares y
utilizados en el mundo. En su mayor parte, para el desarrollo de
aplicaciones empresariales y el desarrollo de aplicaciones para Android.
¿Cuál es la diferencia entre Java y Javascript?
Java y JavaScript son dos lenguajes de programación diferentes que tienen
algunas similitudes, pero también varias diferencias importantes.
Mientras que Java es un lenguaje de programación orientado a objetos y se
ejecuta en una máquina virtual Java (JVM), JavaScript es un lenguaje de
programación de scripts (secuencia de comandos) orientado a objetos.
Por un lado, Java se utiliza para desarrollar aplicaciones de escritorio, servidores,
dispositivos móviles, televisores inteligentes, automóviles, electrodomésticos,
sistemas empresariales y más.
Por otro lado, JavaScript se utiliza para el desarrollo de aplicaciones web y se
ejecuta en el lado del cliente, es decir, en el navegador web del usuario.
En muchos casos junto con HTML y CSS para crear páginas web interactivas y
aplicaciones web dinámicas.
Otra diferencia importante es que Java es un lenguaje de programación
compilado, lo que significa que el código fuente se traduce a código binario antes
de ser ejecutado.
En cambio, JavaScript es un lenguaje de programación interpretado, lo que
significa que el código se ejecuta directamente sin ser compilado.
¿Por qué se dice que Java es seguro?
Java se considera un lenguaje de programación seguro debido a varias
características que tiene integradas, algunas de las cuales son:
Verificación de tipos en tiempo de ejecución: Verifica que los tipos de
datos sean correctos en tiempo de ejecución, lo que ayuda a prevenir
errores de programación y ataques maliciosos.
Control de acceso a objetos: Proporciona un mecanismo de control de
acceso a los objetos, lo que permite restringir el acceso a los datos y
métodos de una clase.
Sandboxing: Utiliza un sistema de aislamiento de código llamado
sandboxing, el cual aísla las aplicaciones de Java en un entorno seguro,
evitando el acceso no autorizado a los recursos del sistema.
Firmas digitales: Permite la firma digital de aplicaciones, lo que permite a
los usuarios confiar en la fuente de una aplicación.
Seguridad en la red: Cuenta con un conjunto de API’s de seguridad en red
que ayudan a proteger las aplicaciones Java contra ataques de red.
Además de estas características, Java también cuenta con una comunidad activa
de desarrolladores y es mantenido constantemente por Oracle, lo que garantiza la
aplicación de parches y actualizaciones para corregir posibles vulnerabilidades en
el lenguaje.
1. Sintaxis de Java, Clases, Objetos y Paquetes
🔹 Sintaxis de Java
La sintaxis de Java es el conjunto de reglas que definen cómo se debe escribir el
código para que el compilador lo entienda.
Java es un lenguaje fuertemente tipado, orientado a objetos y compilado, lo
que significa que cada instrucción debe cumplir reglas precisas de estructura y
tipos de datos.
Características principales:
Toda instrucción termina con un punto y coma (;).
El código se organiza dentro de clases.
Las llaves {} delimitan bloques de código, como métodos, clases y
estructuras de control.
Java diferencia entre mayúsculas y minúsculas (“case sensitive”).
Los comentarios pueden escribirse como:
// Comentario de una línea
/* Comentario de varias líneas */
Ejemplo básico:
public class HolaMundo {
public static void main(String[] args) {
[Link]("¡Hola, mundo!");
}
}
En este ejemplo:
public class HolaMundo define una clase pública llamada HolaMundo.
main() es el punto de entrada del programa.
[Link]() imprime texto en la consola.
🔹 Clases
Una clase es una plantilla o molde que define las características (atributos) y
comportamientos (métodos) de un objeto.
En términos de programación, la clase representa el modelo del objeto que luego
se creará en memoria.
Ejemplo:
public class Persona {
String nombre;
int edad;
void saludar() {
[Link]("Hola, soy " + nombre);
}
}
Aquí la clase Persona define:
Atributos: nombre, edad.
Método: saludar(), que realiza una acción.
🔹 Objetos
Un objeto es una instancia de una clase, es decir, una versión concreta creada a
partir del molde.
Cada objeto tiene su propio estado (valores de atributos) y puede ejecutar los
métodos definidos en la clase.
Ejemplo:
Persona p1 = new Persona();
[Link] = "Ana";
[Link] = 25;
[Link](); // Resultado: Hola, soy Ana
🔹 Paquetes
Los paquetes (packages) son una forma de organizar las clases y el código
dentro de un proyecto.
Sirven para agrupar clases relacionadas y evitar conflictos de nombres entre
diferentes partes del programa.
Ejemplo:
package [Link];
Esto indica que la clase pertenece al paquete [Link].
Para usar una clase de otro paquete, se emplea la palabra clave import:
import [Link];
🧩 2. Principios de la Programación Orientada a Objetos (POO)
La POO es un paradigma de programación que organiza el software en torno a
objetos en lugar de funciones o procedimientos.
Java se basa totalmente en este modelo.
Los tres principios esenciales son:
🔹 Encapsulamiento
Consiste en ocultar los datos internos de un objeto y permitir el acceso solo a
través de métodos públicos.
Su propósito es proteger la integridad del objeto y controlar cómo se modifican sus
atributos.
Ejemplo:
public class Cuenta {
private double saldo; // atributo oculto
public void depositar(double monto) {
saldo += monto;
}
public double obtenerSaldo() {
return saldo;
}
}
Aquí el atributo saldo no puede modificarse directamente desde fuera de la clase,
solo a través de métodos seguros (depositar y obtenerSaldo).
🔹 Herencia
Permite reutilizar código creando nuevas clases basadas en clases existentes.
La clase hija o “subclase” hereda atributos y métodos de la clase padre o
“superclase”.
Ejemplo:
public class Animal {
void comer() { [Link]("El animal come."); }
}
public class Perro extends Animal {
void ladrar() { [Link]("El perro ladra."); }
}
La clase Perro hereda el método comer() de Animal, y además agrega su propio
comportamiento ladrar().
🔹 Polimorfismo
Significa que un mismo método puede comportarse de diferentes maneras
según el objeto que lo invoque.
Esto permite que varias clases compartan una misma interfaz, pero cada una
implemente su versión propia.
Ejemplo:
class Animal {
void sonido() { [Link]("Sonido genérico"); }
}
class Gato extends Animal {
void sonido() { [Link]("Miau"); }
}
class Perro extends Animal {
void sonido() { [Link]("Guau"); }
}
Animal a1 = new Gato();
Animal a2 = new Perro();
[Link](); // Miau
[Link](); // Guau
El método sonido() tiene comportamientos distintos dependiendo del tipo de
objeto.
🧮 3. Tipos de Datos, Colecciones y Excepciones
🔹 Tipos de Datos en Java
Java maneja dos categorías de tipos de datos:
1. Primitivos → almacenan valores simples directamente en memoria:
o int, double, char, boolean, byte, short, long, float.
2. int edad = 25;
3. double salario = 1500.75;
4. boolean activo = true;
5. Referenciados → almacenan referencias a objetos:
o Clases, arrays, interfaces, cadenas (String), etc.
6. String nombre = "Carlos";
7. int[] numeros = {1, 2, 3};
🔹 Colecciones
Las colecciones en Java son estructuras que permiten almacenar, organizar y
manipular conjuntos de datos dinámicos.
Forman parte del paquete [Link].
Las más comunes:
ArrayList: lista dinámica de elementos.
HashMap: pares clave–valor.
HashSet: conjunto sin duplicados.
Ejemplo:
import [Link];
ArrayList<String> lista = new ArrayList<>();
[Link]("Ana");
[Link]("Luis");
for(String nombre : lista){
[Link](nombre);
}
🔹 Excepciones
Las excepciones son eventos que interrumpen el flujo normal del programa,
generalmente por errores en tiempo de ejecución.
Java ofrece un sistema robusto para manejar errores sin detener el programa.
Ejemplo:
try {
int resultado = 10 / 0;
} catch (ArithmeticException e) {
[Link]("Error: división por cero.");
} finally {
[Link]("Bloque finally ejecutado.");
}
Las palabras clave try, catch y finally permiten controlar el flujo ante errores.
⚙️4. Introducción a Maven / Gradle y Estructura de un Proyecto
🔹 Maven
Maven es una herramienta de automatización y gestión de dependencias para
proyectos Java.
Usa un archivo llamado [Link] (Project Object Model) donde se definen:
Dependencias externas (librerías).
Plugins y configuraciones de compilación.
Versión del proyecto y empaquetado.
Ejemplo básico:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>[Link]</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<dependencies>
<dependency>
<groupId>[Link]</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
🔹 Gradle
Gradle cumple un propósito similar a Maven, pero usa un lenguaje de
configuración más moderno (Groovy o Kotlin).
Archivo principal: [Link].
Es más flexible y rápido gracias a su sistema incremental.
Ejemplo:
plugins {
id 'java'
id '[Link]' version '3.3.0'
}
dependencies {
implementation '[Link]:spring-boot-starter-web'
}
🔹 Estructura típica de un proyecto Java con Maven o Gradle
project/
├── src/
│ ├── main/
│ │ ├── java/ → Código fuente Java
│ │ └── resources/ → Archivos de configuración
│ └── test/ → Pruebas unitarias
├── [Link] or [Link]
└── target/ or build/ → Archivos generados al compilar
💻 5. Introducción a IntelliJ IDEA / Eclipse
🔹 IntelliJ IDEA
Es un entorno de desarrollo integrado (IDE) creado por JetBrains, considerado
uno de los más potentes para Java y Spring Boot.
Características:
Asistencia inteligente para el código (autocompletado avanzado).
Integración con Git, Maven, Gradle y bases de datos.
Depuración visual (debugging).
Ejecución directa de proyectos Spring Boot con un clic.
Refactorización automática del código.
🔹 Eclipse
Eclipse es otro IDE muy popular, especialmente en entornos educativos y
empresariales.
Características:
Gratuito y de código abierto.
Soporta Java, C++, Python y más lenguajes mediante plugins.
Integración con Maven, Git y servidores web.
Permite desarrollar aplicaciones con interfaz gráfica (Swing, JavaFX).
Ambos entornos son adecuados; sin embargo, IntelliJ IDEA es más moderno y
optimizado para proyectos con Spring Boot.