Guia entrevista
🔹 1.
Presentación inicial (5–10 min)
- El
entrevistador se presenta y te cuenta sobre la empresa, el equipo y el
puesto.
- Tú te
presentas brevemente: experiencia, proyectos más relevantes, motivación
para el cambio.
👉 Aquí esperan que muestres claridad, seguridad y motivación.
🔹 2. Preguntas de
experiencia y contexto (10–15 min)
Ejemplos:
- ¿En qué
proyectos usaste Java y qué versión?
- ¿Qué frameworks de backend manejas (Spring Boot,
Hibernate, JPA, etc.)?
- ¿Has
trabajado con bases de datos relacionales o NoSQL?
- ¿Cómo
organizas un proyecto Maven o Gradle?
- ¿Qué
herramientas de control de versiones utilizas (Git, GitHub, GitLab)?
👉 Aquí buscan confirmar que realmente tienes experiencia práctica y
no solo teórica.
🔹 3. Parte técnica (30–45
min)
Aquí es donde se pone más desafiante. Puede incluir:
🟢 Preguntas de
fundamentos de Java
- Diferencia
entre == y equals().
- ¿Qué es el
Garbage Collector y cómo funciona en Java?
- Explica multithreading
y synchronized.
- Diferencia
entre List, Set y Map.
- ¿Qué son
las lambdas y streams?
🟢 Frameworks y
arquitectura
- ¿Qué es Spring
Boot y qué ventajas ofrece frente a un proyecto clásico en Spring?
- Explica el
patrón DAO y su relación con Hibernate/JPA.
- ¿Cómo
implementarías un REST API con Spring Boot?
- ¿Qué es la
inyección de dependencias?
🟢 Bases de datos
- Escribe
una consulta SQL para traer los usuarios activos de la última semana.
- Diferencia
entre INNER JOIN y LEFT JOIN.
- ¿Qué es
una transacción y qué propiedades tiene (ACID)?
🟢 Ejercicio práctico
A veces te piden resolver un mini ejercicio:
- Crear una
API REST con dos endpoints (/users GET y
POST).
- Implementar
una función que invierta un string o que busque duplicados en una lista.
- Modelar
clases para un sistema de pedidos (Cliente, Pedido, Producto).
🔹 4. Pruebas de diseño y
arquitectura (15–20 min)
Preguntas tipo:
- Diseña un
sistema de login con roles y permisos.
- ¿Cómo
escalarías un servicio de pagos si recibe millones de transacciones?
- ¿Qué es la
arquitectura microservicios y en qué se diferencia de un monolito?
👉 Aquí buscan ver tu pensamiento lógico y capacidad de diseñar
soluciones escalables.
🔹 5. Cultura y soft
skills (10–15 min)
- ¿Cómo
manejas un conflicto con un compañero de equipo?
- ¿Cómo
priorizas tareas si tienes plazos cortos?
- ¿Qué
buscas en tu próximo empleo?
👉 Buscan comprobar que encajas en la cultura de la empresa.
🔹 6. Cierre
- Te
preguntan si tienes dudas (siempre conviene hacer una: sobre el equipo,
proyectos o stack tecnológico).
- Te
explican los próximos pasos del proceso.
📌 Consejo:
Un buen entrenamiento es simular entrevistas técnicas en LeetCode,
HackerRank y repasar Spring Boot, Hibernate, SQL, arquitectura de
software.
Guía de
Entrevista Java Backend
RESPUESTA
1. Fundamentos de Java
Diferencia entre == y equals():
- == compara referencias
en memoria.
- equals() compara contenido lógico.
Ejemplo:
String a = new String("Hola");
String b = new String("Hola");
a == b → false
a.equals(b) → true
Garbage Collector:
Libera memoria eliminando objetos sin referencias. Usa algoritmos como Mark and
Sweep y Generational GC.
Multithreading y synchronized:
- Multithreading permite hilos en paralelo.
- synchronized evita condiciones de carrera asegurando acceso exclusivo.
Colecciones:
- List: ordenada, permite duplicados.
- Set: no ordenada, sin duplicados.
- Map: pares clave-valor, claves únicas.
Lambdas y Streams:
- Lambda: funciones anónimas concisas.
- Stream: API funcional para colecciones (map, filter, reduce).
2. Frameworks y
Arquitectura
Spring Boot:
Framework que simplifica desarrollo con:
- Configuración automática.
- Servidor embebido.
- Facilita microservicios y APIs REST.
Patrón DAO y JPA/Hibernate:
DAO separa lógica de negocio del acceso a datos.
Hibernate/JPA manejan acceso a BD con entidades.
Implementar REST API con Spring Boot:
- Definir controlador con @RestController y @GetMapping.
- Usar DTOs y servicios.
Inyección de dependencias:
Patrón donde Spring inyecta dependencias usando @Autowired.
3. Bases de Datos
SQL: Usuarios activos última semana:
SELECT * FROM usuarios WHERE estado = 'activo' AND fecha_registro >= NOW() -
INTERVAL 7 DAY;
INNER JOIN vs LEFT JOIN:
- INNER JOIN: solo coincidencias en ambas tablas.
- LEFT JOIN: todas las filas de la izquierda aunque no haya coincidencia.
Transacciones y ACID:
- Atomicidad: todo o nada.
- Consistencia: mantiene integridad.
- Aislamiento: no interfiere con otras transacciones.
- Durabilidad: cambios persisten aunque falle el sistema.
4. Diseño y
Arquitectura
Sistema de Login con roles:
- Usuarios con contraseñas hasheadas (BCrypt).
- Roles y permisos.
- Autenticación con Spring Security + JWT.
Escalabilidad en sistema de pagos:
- Microservicios separados.
- Balanceadores de carga.
- Bases de datos distribuidas.
- Kafka/RabbitMQ.
- Redis para caching.
Microservicios vs Monolito:
- Monolito: todo junto, menos flexible.
- Microservicios: independientes, escalables.