Ingeniero Backend en Java: Colección de Preguntas de Entrevista
Relacionado con el Proyecto
- Autopresentación
- Introducción del proyecto
- Volumen del proyecto
- Puntos clave sobre hilos y concurrencia
- Diferencias entre
lock
y synchronized
- Diferencias entre MYSQL y MONGODB
- Componentes y versiones de SpringCloud utilizados
Ecosistema de Spring
- ¿Cuál es el núcleo de SpringBoot?
- Versión de SpringBoot
- ¿Qué componentes de SpringCloud se utilizan?
- Diferencias entre SpringBoot y SpringCloud
- Métodos de inyección de beans en Spring
- Convenciones de nombres para beans en configuraciones de múltiples fuentes de datos
Arquitectura de Microservicios
- Cómo dividir los módulos de microservicios
- En el acoplamiento, ¿qué tiene prioridad: el acoplamiento de negocio o el acoplamiento técnico?
- Qué patrón de microservicios se utiliza
- Diferencias entre stateless y stateful en el diseño de API, cómo elegir
- Número predeterminado de nodos para la implementación en la nube
Temas relacionados con Java
- Versión de JDK en uso
- Implementación subyacente de Stream
- Cómo depurar problemas en código de Stream
- Componentes de Stream y estructura subyacente
- Cómo implementar el intercambio de mensajes entre hilos
- ¿Qué es un bloqueo reentrante?
- Explica tu comprensión sobre los bloqueos
- Diferencias entre JDK8 y JDK17
Configuración del Servidor
- Número de hilos predeterminado en Tomcat
- Cómo migrar de Tomcat a otros servidores web
- Configuración de proxy inverso en Nginx
Base de Datos y Caché
- Cómo crear una conexión a Redis en un proyecto, dependencias necesarias
- Cómo crear una conexión utilizando Jedis
- Comandos de transacción en Redis
- Escenario SQL: Consulta de unión entre las tablas de departamento y empleado para obtener el salario más alto por departamento
- Ventajas del left join
Escenarios de Programación
- Implementar la ordenación de objetos Person por edad y nombre utilizando la API de Java8
- Mostrar los caracteres comunes entre dos cadenas de texto
CI/CD
- Experiencia en la escritura de Dockerfile
- Características de los closures de Groovy en el pipeline de Jenkins
- Propósito de la herramienta Nexus
- Experiencia práctica en DevOps
Conceptos Fundamentales
- Conceptos y funciones del Modelo de Memoria de Java (JMM)
- Principios de implementación de HashMap y resolución de conflictos
- Implementación del patrón Proxy (estático y dinámico)
- Principios de IoC y AOP
- Por qué Redis mantiene un alto rendimiento con un solo hilo
- Configuración de parámetros del pool de hilos Executor
Enfoque del Entrevistador Indio
- Conceptos básicos de Java (con ejemplos)
- Uso del polimorfismo
- Rendimiento de LinkedList y diferencias
- Diferencias entre Mapas
- Soluciones para el manejo de arrays
- Comandos de Linux
- Experiencia en proyectos (tech stack: python, angular, control-M)
- Dominio del inglés
Niveles de Fluidez en Inglés
- No puede expresarse - Base pobre, no puede dar una introducción personal o presentación de proyectos
- Conversación básica/simple - Base básica, puede dar una introducción personal preparada
- Comunicación diaria - Buena base, puede participar en reuniones en inglés y entender la mayor parte del contenido
- Competente - Base sólida, puede comunicarse con fluidez con el entrevistador
- Competente e intercambio técnico - Dominio excelente, puede participar en discusiones técnicas sin barreras
Otros Puntos de Evaluación en la Entrevista
- Métodos de aprendizaje
- Capacidad de comunicación técnica
- Experiencia en comunicación con clientes
- Desafíos del proyecto y soluciones
- Plan de desarrollo profesional
- Profundidad técnica (multihilo, validación de datos, desarrollo frontend, etc.)