L'image native convient aux charges où le temps de démarrage et la mémoire dominent : fonctions serverless, outils en ligne de commande et services qui descendent à zéro, puisqu'elle démarre en millisecondes sans chauffe et avec une empreinte bien plus petite. Le coût est une hypothèse de monde fermé, donc la réflexion, les proxys dynamiques et le chargement de ressources doivent être connus à la construction, les builds sont lents, et le débit de pointe peut être inférieur à ce que le JIT atteint sur un processus de longue durée.
Pourquoi les recruteurs posent cette question
Cela vérifie si vous évaluez une technologie face à une charge de travail plutôt que de suivre la mode. Le recruteur veut les deux côtés : le gain en démarrage et en mémoire, et les vrais coûts en temps de build, en configuration de la réflexion et en débogage. Savoir que les frameworks génèrent la configuration requise à la construction, et qu'un service de longue durée à fort débit s'en sort en général mieux sur le JIT, montre un jugement équilibré.
Comment structurer votre réponse
- Associez la technique aux charges où le démarrage et la mémoire comptent.
- Expliquez l'hypothèse de monde fermé et ce qu'elle restreint.
- Couvrez les coûts pratiques : temps de build, configuration, lacunes d'outillage.
- Dites quand vous resteriez sur la JVM à la place.
Exemple de réponse
J'y vais quand le temps de démarrage est sur le chemin critique. Une fonction qui s'exécute deux cents millisecondes ne peut pas se permettre une JVM qui met trois secondes à démarrer et une minute de plus à chauffer, et le même argument vaut pour un outil en ligne de commande ou un service qui descend à zéro entre deux vagues de trafic. La mémoire est l'autre gain, puisqu'une image native peut tourner dans une fraction du tas. Ce que vous perdez, c'est le dynamisme. La compilation anticipée suppose un monde fermé, donc tout ce qui est découvert à l'exécution, réflexion, proxys dynamiques, chargement de services, bundles de ressources, doit être déclaré à la construction. Les frameworks modernes génèrent l'essentiel de cette configuration pour vous pendant leur étape de build, mais une bibliothèque qui fait quelque chose de malin à l'exécution échouera d'une façon qui n'apparaît que dans le binaire natif, donc la suite de tests doit tourner contre l'image aussi. Les builds prennent aussi des minutes plutôt que des secondes, et l'outillage d'observabilité est moins mûr. Pour un service de longue durée avec un trafic régulier je reste sur la JVM, parce que le JIT finit par battre le code compilé à l'avance sur le débit de pointe.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Comment un framework génère-t-il la configuration de réflexion pour vous ?
- Comment déboguer quelque chose qui n'échoue que dans l'image native ?
- Qu'est-ce que l'optimisation guidée par profil change à l'écart de débit ?
Autres questions pour Développeur Java
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions