Java
La tâche a été formulée comme "réduire la latence", et avez-vous cherché la solution vous-même?
Avez-vous déjà joué le rôle de chef de fonctionnalités?
Comment fonctionne l'association Kafka + Redis sorted set + planificateur externe pour les notifications différées?
Quels collecteurs de déchets (Garbage Collectors) connaissez-vous en Java ? Y a-t-il des recommandations pour l'utilisation de différents types ?
Avez-vous de l'expérience avec des produits d'IA/ML?
Qu'est-ce qui est préférable en pile?
Parlez-moi du processus de développement (Agile/Scrum). Comment évalue-t-on les tâches?
7. Vous testez le formulaire d'ajout de nouveaux produits dans le panneau d'administration. Créez un nouveau produit, cliquez sur le bouton Enregistrer et vous voyez un écran blanc vide. Décrivez vos actions suivantes.
Quels sont les deux principaux types d'opérations dans l'API Stream?
Avez-vous déjà travaillé avec Spring Data et Hibernate ? Quels problèmes de performance avez-vous résolus ?
Donnez un exemple où il n'est pas nécessaire d'utiliser une architecture de microservices et nommez quelques raisons.
Pour quelles tâches Istio serait-il adapté?
Implémentez un cache LRU avec remplacement des anciennes valeurs (implémentation de base)
Quels sujets Kafka seront dans le système de rapports, qui produit et qui consomme?
Écrire une requête SQL : sélectionner les titres de tous les livres ayant plus de trois auteurs.
Peut-on utiliser volatile pour une variable long et dans quels scénarios cela est-il sûr?
/** * Interface pour interagir avec le matériel du distributeur automatique. */ interface Hardware { /** * Renvoie un tableau avec le nombre de billets par dénominations 50, 100, 500, 1000, 5000. * La méthode fonctionne lentement et génère du bruit. * * @return tableau où chaque élément correspond au nombre de billets d'une dénomination spécifique. * Par exemple, [10, 20, 30, 40, 50] signifie: * - 10 billets de 50 roubles * - 20 billets de 100 roubles * - 30 billets de 500 roubles * - 40 billets de 1000 roubles * - 50 billets de 5000 roubles */ int[] getBillsCounts(); /** * Charge dans la caisse les billets indiqués. * * @param billsCounts tableau avec le nombre de billets par dénominations [50, 100, 500, 1000, 5000]. * Par exemple, [0, 1, 0, 2, 0] signifie: * - 0 billets de 50 roubles * - 1 billet de 100 roubles * - 0 billets de 500 roubles * - 2 billets de 1000 roubles * - 0 billets de 5000 roubles */ void giveBills(int[] billsCounts); } /** * Classe pour implémenter la logique du distributeur automatique. * Ici, il faut écrire le code */ class MyATM { /** * Partie matérielle du distributeur. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
Quand faut-il appliquer le principe d'Inversion de Dépendances et quand ne pas le faire (relation avec YAGNI) ?
Quels sont les scopes dans Spring ? Qu'est-ce que le scope singleton ?
Parlez-moi du théorème CAP. Qu'est-ce que c'est et à quoi ça sert?