Ingénieur Backend Java : Collection de Questions d'Entretien
Projet Relatif
- Auto-présentation
- Présentation du projet
- Volume du projet
- Points de connaissance sur les threads et la concurrence
- Différences entre
lock
et synchronized
- Différences entre MYSQL et MONGODB
- Quels composants et versions de SpringCloud sont utilisés
Écosystème Spring
- Quel est le cœur de SpringBoot
- Version de SpringBoot
- Quels composants de SpringCloud sont utilisés
- Différences entre SpringBoot et SpringCloud
- Méthodes d’injection de bean Spring
- Conventions de nommage des beans pour la configuration de plusieurs sources de données
Architecture de Microservices
- Comment diviser les modules de microservices
- En matière de couplage, lequel est prioritaire : le couplage métier ou le couplage technique
- Quel modèle de microservices est utilisé
- Différences entre sans état (stateless) et avec état (stateful) dans la conception d’API, comment choisir
- Nombre par défaut de nœuds pour un déploiement cloud
- Version du JDK utilisée
- Implémentation sous-jacente des Streams
- Comment déboguer les problèmes de code liés aux Streams
- Composants des Streams et structure sous-jacente
- Comment implémenter le partage de messages entre threads
- Qu’est-ce qu’un verrou réentrant (reentrant lock)
- Expliquez votre compréhension des verrous
- Différences entre JDK8 et JDK17
Configuration du Serveur
- Nombre de threads par défaut dans Tomcat
- Comment migrer de Tomcat vers d’autres serveurs web
- Configuration du proxy inverse Nginx
Base de données et Cache
- Comment créer une connexion Redis dans un projet, dépendances requises
- Comment créer une connexion en utilisant Jedis
- Commandes de transaction Redis
- Scénario SQL : Requête de jointure entre les tables département et employé pour le salaire le plus élevé par département
- Avantages d’une jointure gauche (left join)
Scénarios de Programmation
- Implémenter le tri des objets Person par âge et nom en utilisant l’API Java8
- Afficher les caractères communs entre deux chaînes de caractères
CI/CD
- Expérience en rédaction de Dockerfile
- Fonctionnalités des fermetures (closures) Groovy dans le pipeline Jenkins
- Objectif de l’outil Nexus
- Expérience pratique en DevOps
Concepts de base
- Concepts et fonctions du modèle de mémoire Java (JMM)
- Principes de mise en œuvre de HashMap et résolution des conflits
- Mise en œuvre du modèle de proxy (statique et dynamique)
- Principes de l’IoC et de l’AOP
- Pourquoi Redis maintient des performances élevées avec un seul thread
- Configuration des paramètres du pool de threads Executor
Points d’Attention des Intervieweurs Indiens
- Concepts de base de Java (avec exemples)
- Utilisation du polymorphisme
- Performances et différences des LinkedList
- Différences entre les Maps
- Solutions de manipulation des tableaux
- Commandes Linux
- Expérience en projets (pile technologique : python, angular, control-M)
- Maîtrise de l’anglais
Niveaux de Maîtrise de l’Anglais
- Incapacité à s’exprimer - Fondations faibles, incapable de faire une présentation personnelle ou de présenter un projet
- Conversation basique/simple - Fondations de base, capable de faire une présentation personnelle préparée
- Communication quotidienne - Bonnes fondations, peut participer à des réunions en anglais et comprendre la plupart du contenu
- Compétent - Fondations solides, peut communiquer couramment avec l’interviewer
- Compétent et échange technique - Excellente maîtrise, peut participer à des discussions techniques sans barrière
Autres Points d’Évaluation lors de l’Entretien
- Méthodes d’apprentissage
- Capacité de communication technique
- Expérience en communication avec les clients
- Défis de projet et solutions apportées
- Plan de développement de carrière
- Profondeur technique (multi-threading, validation des données, développement frontend, etc.)