Preguntas de entrevista de Java Core
54 preguntas de entrevista de Java Core con respuestas, de nivel junior a intermedio.
Fundamentos
- ¿Qué es Java?
- ¿Qué pasa entre escribir código Java y ejecutarlo?
- ¿Qué es la JVM (Java Virtual Machine)?
- ¿Qué instalas para escribir, compilar y ejecutar programas Java?
- ¿Qué significa LTS en las versiones de Java y qué versiones son LTS?
- En Java, ¿qué son una clase y un objeto?
- En una clase Java, ¿qué son los campos y los métodos?
- ¿Qué hace este código?
- ¿Qué es
public static void main(String[] args)? - ¿Qué son un package y un
importen Java? - ¿Qué es un archivo JAR?
- ¿Qué es una interface en Java?
- ¿Qué significa
nullen Java y qué es una NullPointerException? - ¿Qué es un IDE?
Base
- ¿Cuál es la diferencia entre el JDK, el JRE y la JVM?
- "Write once, run anywhere" en Java es posible principalmente porque:
- ¿Qué afirmación sobre
inteIntegeres correcta? - ¿Qué imprime esto?
- ¿Por qué conviene evitar
s += xpara construir un string largo dentro de un bucle grande? - ¿Qué significa la palabra clave
staticen un método o campo? - ¿Qué hace
final? - ¿Qué modificador de acceso se aplica cuando NO escribes ninguna palabra clave delante de un campo o método?
- ¿Cuál es la principal diferencia entre una interface y una clase abstracta en Java?
- ¿Qué colección deberías elegir para guardar elementos únicos, sin duplicados?
- En la práctica, ¿cuál es la mejor opción por defecto para una lista de uso general:
ArrayListoLinkedList? - ¿Cuál de estas es una excepción CHECKED?
- ¿Cuál es la diferencia entre overloading y overriding de métodos?
- Explica los cuatro pilares de la POO con ejemplos en Java.
Intermedio
- Si sobrescribes
equals()en una clase, ¿qué más debes sobrescribir y por qué? - ¿Qué imprime esto?
- ¿Para qué sirve
try-with-resources? - ¿Qué es el type erasure en los generics de Java?
- ¿Qué imprime esto?
- ¿Qué imprime esto?
- ¿Cuál es la forma recomendada de usar
Optional<T>? - ¿Qué te dan los records (Java 16+) con
record Point(int x, int y) {}? - ¿Dónde viven los objetos en la JVM y qué vive en el stack?
- ¿Qué imprime esto?
- ¿Por qué este código lanza
ConcurrentModificationException? - ¿Qué es cierto sobre
HashMap,HashtableyConcurrentHashMap? - ¿Cuál es la diferencia entre
synchronizedyvolatile? - ¿Por qué usar un
ExecutorService(thread pool) en lugar denew Thread()para cada tarea? - ¿Cuándo usarías
Comparatoren lugar deComparable? - Explica cómo funciona un HashMap por dentro.
- Explica el modelo de memoria de Java: heap, stack, metaspace y garbage collection.
- ¿Qué cambió en el Java moderno (de 8 a 21) que todo desarrollador debería saber?
Avanzado
- Java tiene garbage collector. ¿Cómo puede un programa Java tener aun así una fuga de memoria?
- ¿Qué problema resuelven los virtual threads (Java 21)?
- ¿Por qué este contador NO es thread-safe aunque el campo sea
volatile? - ¿Cuál es la diferencia práctica entre
thenApplyythenComposeenCompletableFuture? - ¿Cómo haces una clase verdaderamente inmutable en Java?
- Una clase sobrescribe
equalspero NOhashCode. ¿Cuál es el resultado probable? - ¿Qué significa una pausa "stop-the-world" en el garbage collection, y cómo la reducen los collectors modernos?
- ¿Qué herramientas de concurrencia te da Java y cuándo usas cada una?