diciembre 21, 2025
9 min de lectura

Preguntas para Entrevistas de Desarrollador Backend (Java): Guía Completa

interview
career-advice
job-search
Preguntas para Entrevistas de Desarrollador Backend (Java): Guía Completa
Milad Bonakdar

Milad Bonakdar

Autor

Domina el desarrollo backend en Java con preguntas esenciales para entrevistas que cubren Spring Boot, Microservicios, JPA y diseño de sistemas. Preparación perfecta para entrevistas de desarrolladores Java.


Introducción

Java sigue siendo una potencia en el mundo del backend empresarial, especialmente con el moderno ecosistema de Spring Boot. Su robustez, escalabilidad y vasto ecosistema lo convierten en una opción principal para construir microservicios y aplicaciones nativas de la nube.

Esta guía cubre preguntas esenciales de entrevista para Desarrolladores Backend especializados en Java y Spring Boot. Exploramos conceptos centrales del framework, arquitectura de microservicios, interacciones con bases de datos con JPA/Hibernate, y mejores prácticas para ayudarte a prepararte para tu próxima entrevista.


Conceptos Centrales de Spring Boot

1. ¿Qué es Spring Boot y cómo difiere del tradicional Spring Framework?

Respuesta:

  • Spring Framework: Un framework integral para el desarrollo Java empresarial. Requiere una configuración manual significativa (basada en XML o Java) para configurarse.
  • Spring Boot: Una extensión del Spring Framework que simplifica la configuración y el desarrollo de nuevas aplicaciones Spring.
    • Auto-Configuración: Configura automáticamente los beans basándose en las dependencias del classpath.
    • Servidores Embebidos: Incluye Tomcat, Jetty o Undertow, por lo que no necesitas desplegar archivos WAR.
    • Starters: Dependencias seleccionadas para simplificar la configuración de la construcción.
    • Valores Predeterminados Opinados: Enfoque de "convención sobre configuración".

Frecuencia: Común Dificultad: Fácil


2. Explica la anotación @SpringBootApplication.

Respuesta: Es una anotación de conveniencia que combina otras tres anotaciones:

  1. @Configuration: Marca la clase como una fuente de definiciones de beans.
  2. @EnableAutoConfiguration: Le dice a Spring Boot que comience a agregar beans basándose en la configuración del classpath, otros beans y varias configuraciones de propiedades.
  3. @ComponentScan: Le dice a Spring que busque otros componentes, configuraciones y servicios en el paquete actual y los subpaquetes.

Frecuencia: Común Dificultad: Fácil


3. ¿Qué es la Inyección de Dependencias (DI) y la Inversión de Control (IoC)?

Respuesta:

  • IoC: Un principio donde el control de la creación y gestión de objetos se transfiere del programador a un contenedor (Spring IoC Container).
  • DI: Un patrón de diseño utilizado para implementar IoC. En lugar de que un objeto cree sus dependencias, estas se "inyectan" en él (a través del Constructor, Setter o Campo).
  • Beneficio: Desacoplamiento, pruebas más fáciles (simulación de dependencias) y mejor mantenibilidad.

Frecuencia: Muy Común Dificultad: Media


4. ¿Qué son los Spring Boot Starters? Da ejemplos.

Respuesta: Los starters son un conjunto de descriptores de dependencia convenientes que puedes incluir en tu aplicación. Contienen todas las dependencias que necesitas para poner en marcha un proyecto rápidamente con un conjunto consistente y soportado de dependencias transitivas gestionadas.

  • Ejemplos:
    • spring-boot-starter-web: Para construir aplicaciones web (incluye Tomcat y Spring MVC).
    • spring-boot-starter-data-jpa: Para usar Spring Data JPA con Hibernate.
    • spring-boot-starter-test: Para pruebas (incluye JUnit, Mockito).
    • spring-boot-starter-security: Para Spring Security.

Frecuencia: Común Dificultad: Fácil


5. ¿Qué es Spring Actuator?

Respuesta: Spring Boot Actuator proporciona características listas para producción para ayudarte a monitorear y administrar tu aplicación.

  • Endpoints: Expone endpoints como /health (estado de la aplicación), /metrics (memoria, uso de CPU), /info (información de la aplicación), /env (propiedades del entorno).
  • Uso: Crítico para que los equipos de operaciones verifiquen el estado de los microservicios en producción.

Frecuencia: Común Dificultad: Media


Microservicios y Arquitectura

6. ¿Cuáles son los beneficios de los Microservicios sobre la Arquitectura Monolítica?

Respuesta:

  • Escalabilidad: Los servicios individuales se pueden escalar independientemente según la demanda.
  • Agnóstico a la Tecnología: Diferentes servicios pueden usar diferentes tecnologías (Java, Go, Python) que mejor se adapten a la tarea.
  • Aislamiento de Fallos: Un fallo en un servicio no necesariamente derriba todo el sistema.
  • Despliegue Independiente: Los equipos pueden desplegar servicios independientemente, lo que permite ciclos de lanzamiento más rápidos (CI/CD).

Frecuencia: Común Dificultad: Media


7. ¿Qué es un API Gateway? ¿Por qué usarlo?

Respuesta: Un API Gateway es un servidor que actúa como un único punto de entrada al sistema. Toma todas las llamadas API de los clientes y luego las enruta al microservicio apropiado.

  • Funciones: Enrutamiento de solicitudes, composición y traducción de protocolos.
  • Preocupaciones transversales: Autenticación, terminación SSL, limitación de velocidad, almacenamiento en caché, registro.
  • Ejemplos: Spring Cloud Gateway, Netflix Zuul, Kong.

Frecuencia: Muy Común Dificultad: Media


8. Explica el Descubrimiento de Servicios (Eureka).

Respuesta: En un entorno de microservicios, las instancias de servicio tienen direcciones IP dinámicas. El Descubrimiento de Servicios es un mecanismo para que los servicios se encuentren entre sí.

  • Eureka Server: Actúa como un registro de servicios.
  • Eureka Client: Los microservicios se registran con el Eureka Server al inicio y envían heartbeats.
  • Descubrimiento: Cuando el Servicio A necesita llamar al Servicio B, le pide a Eureka la dirección del Servicio B.

Frecuencia: Común Dificultad: Media


9. ¿Qué es el Patrón Circuit Breaker?

Respuesta: El patrón Circuit Breaker evita que una aplicación intente repetidamente ejecutar una operación que es probable que falle (por ejemplo, llamar a un servicio inactivo).

  • Estados:
    • Cerrado: Las solicitudes fluyen normalmente.
    • Abierto: Las solicitudes se bloquean inmediatamente (fallo rápido) para permitir que el servicio fallido se recupere.
    • Semi-Abierto: Se permite que un número limitado de solicitudes pasen para probar si el servicio se ha recuperado.
  • Herramientas: Resilience4j (recomendado), Hystrix (deprecated).

Frecuencia: Muy Común Dificultad: Difícil


Base de Datos y JPA

10. ¿Qué es JPA y Hibernate?

Respuesta:

  • JPA (Java Persistence API): Una especificación para acceder, persistir y administrar datos entre objetos Java y una base de datos relacional. Es solo una interfaz.
  • Hibernate: La implementación más popular de la especificación JPA. Es una herramienta ORM (Object-Relational Mapping).

Frecuencia: Común Dificultad: Fácil


11. Explica el Problema N+1 Select en Hibernate.

Respuesta: El problema N+1 ocurre cuando el framework de acceso a datos ejecuta N sentencias SQL adicionales para obtener los mismos datos que podrían haberse recuperado al ejecutar la consulta SQL primaria.

  • Escenario: Obtener una lista de Authors (1 consulta). Iterar y acceder a author.getBooks() (N consultas, una para cada autor).
  • Solución: Usar Join Fetch en JPQL (SELECT a FROM Author a JOIN FETCH a.books) o Entity Graphs para cargar entidades relacionadas de forma eager en una sola consulta.

Frecuencia: Muy Común Dificultad: Media


12. ¿Cuál es la diferencia entre @Entity, @Table y @Column?

Respuesta:

  • @Entity: Especifica que la clase es una entidad y está mapeada a una tabla de base de datos.
  • @Table: Opcional. Especifica el nombre de la tabla de base de datos que se utilizará para el mapeo. Si se omite, se utiliza el nombre de la clase.
  • @Column: Opcional. Especifica los detalles de la columna a la que se mapeará un campo o propiedad. Si se omite, se utiliza el nombre del campo.

Frecuencia: Común Dificultad: Fácil


Seguridad y Pruebas

13. ¿Cómo aseguras una aplicación Spring Boot?

Respuesta: Usando Spring Security.

  • Autenticación: Verificar quién es el usuario (por ejemplo, Basic Auth, Form Login, OAuth2/OIDC).
  • Autorización: Verificar qué se le permite hacer al usuario (por ejemplo, control de acceso basado en roles usando @PreAuthorize).
  • JWT: Para microservicios sin estado, los JSON Web Tokens se utilizan comúnmente para pasar la identidad entre los servicios.

Frecuencia: Común Dificultad: Media


14. ¿Cuál es la diferencia entre @Mock y @InjectMocks en Mockito?

Respuesta:

  • @Mock: Crea un objeto simulado de la clase/interfaz. No tiene ningún comportamiento real; defines su comportamiento usando when(...).thenReturn(...).
  • @InjectMocks: Crea una instancia de la clase e inyecta los mocks que se crean con las anotaciones @Mock (o @Spy) en esta instancia. Se utiliza para la clase bajo prueba.

Frecuencia: Común Dificultad: Media


15. ¿Cómo manejas las transacciones en Spring Boot?

Respuesta: Usando la anotación @Transactional.

  • Mecanismo: Spring crea un proxy alrededor de la clase/método. Inicia una transacción antes de la ejecución del método y la confirma después de que el método regresa. Si se lanza una RuntimeException, revierte la transacción.
  • Propagación: Puedes configurar cómo se relaciona la transacción con las transacciones existentes (por ejemplo, REQUIRED, REQUIRES_NEW).

Frecuencia: Común Dificultad: Media


Temas Avanzados

16. ¿Qué es Spring Cloud Config?

Respuesta: Spring Cloud Config proporciona soporte del lado del servidor y del lado del cliente para la configuración externalizada en un sistema distribuido.

  • Config Server: Lugar central para administrar propiedades externas para aplicaciones en todos los entornos. Puede estar respaldado por Git, SVN o Vault.
  • Beneficio: Puedes cambiar la configuración sin volver a desplegar la aplicación (usando @RefreshScope).

Frecuencia: Poco Común Dificultad: Media


17. Explica la diferencia entre el alcance Singleton y Prototype en los Spring Beans.

Respuesta:

  • Singleton (Predeterminado): Solo se crea una instancia del bean por contenedor Spring IoC. Se almacena en caché y se reutiliza.
  • Prototype: Se crea una nueva instancia cada vez que se solicita el bean.
  • Otros: Request, Session (alcances web-aware).

Frecuencia: Común Dificultad: Fácil


18. ¿Cuál es la diferencia entre excepciones Checked y Unchecked en Java?

Respuesta:

  • Checked Exceptions: Heredan de Exception (pero no de RuntimeException). El compilador te obliga a manejarlas (try-catch) o declararlas (throws). Ejemplo: IOException, SQLException. Representan condiciones recuperables.
  • Unchecked Exceptions: Heredan de RuntimeException. El compilador no te obliga a manejarlas. Ejemplo: NullPointerException, IllegalArgumentException. Representan errores de programación. @Transactional de Spring revierte solo en excepciones unchecked por defecto.

Frecuencia: Común Dificultad: Fácil


19. ¿Cómo funciona la Recolección de Basura en Java?

Respuesta: La Recolección de Basura (GC) es el proceso de reclamar automáticamente la memoria ocupada por objetos que ya no son alcanzables.

  • Hipótesis Generacional: La mayoría de los objetos mueren jóvenes.
  • Estructura del Heap: Generación Joven (Eden, espacios Survivor) y Generación Vieja.
  • Minor GC: Limpia la Gen Joven. Rápido.
  • Major/Full GC: Limpia la Gen Vieja. Más lento, puede causar pausas "Stop-the-world".
  • Algoritmos: G1GC (predeterminado en Java moderno), ZGC, Shenandoah (baja latencia).

Frecuencia: Común Dificultad: Difícil


20. ¿Qué son los Java Streams?

Respuesta: Introducidos en Java 8, los Streams proporcionan un enfoque funcional para procesar colecciones de objetos.

  • Características: Declarativo, Pipelining, Iteración Interna.
  • Operaciones:
    • Intermedias: filter, map, sorted (lazy).
    • Terminales: collect, forEach, reduce (trigger processing).
  • Parallel Streams: Puede procesar datos en paralelo utilizando múltiples hilos (.parallelStream()).

Frecuencia: Común Dificultad: Media

Newsletter subscription

Consejos de carrera semanales que realmente funcionan

Recibe las últimas ideas directamente en tu bandeja de entrada

Deja de Postularte. Comienza a Ser Contratado.

Transforma tu currículum en un imán de entrevistas con optimización impulsada por IA confiada por buscadores de empleo en todo el mundo.

Comienza gratis

Compartir esta publicación

Supera la Tasa de Rechazo del 75% de los ATS

3 de cada 4 currículums nunca llegan a un ojo humano. Nuestra optimización de palabras clave aumenta tu tasa de aprobación hasta en un 80%, asegurando que los reclutadores realmente vean tu potencial.