Java
Quels classes pouvez-vous nommer pour configurer le conteneur?
Est-ce suffisant pour la sécurité thread-safe si dans la classe il y a deux champs avec un invariant (l'un étant strictement inférieur à l'autre), chacun protégé par AtomicInteger?
Comment assurer une transaction distribuée sur plusieurs services?
Avez-vous de l'expérience dans l'utilisation de files d'attente dans vos projets?
Pouvez-vous donner un exemple d'utilisation d'un bloc statique dans le code?
Faut-il diviser les tables en parties (sharding) pour augmenter la vitesse d'exécution des requêtes?
Quels sont les avantages et inconvénients de l'utilisation de Protocol Buffer pour la sérialisation des données?
Caractéristiques de l'utilisation de @Transactional dans Spring. Niveaux d'isolation des transactions.
Racontez comment le processus de développement a été organisé dans votre précédent emploi, de la nécessité commerciale à la sortie.
Comment la prise en charge des transactions est-elle implémentée à l'aide de l'annotation @Transactional dans Spring Framework?
Avez-vous travaillé avec l'intégration de Spring Data et Hibernate dans vos projets?
Quand et comment les fonctions statiques sont-elles appelées : sur un objet ou sur une classe ?
Avez-vous de l'expérience avec la méthode parallel dans l'API Stream pour le traitement parallèle des données?
Comment la portée d'un Bean est-elle déterminée dans des conditions standard par défaut?
Pouvez-vous expliquer le mécanisme de l'annotation @SpringBootTest dans les tests Spring Boot?
Quelles approches existent pour gérer une intégration instable qui peut ne pas répondre d'une minute à un jour?
Quelle est la différence de performance entre l'utilisation de types de données primitifs et leurs enveloppes d'objets?
Comparez les performances des extraits de code suivants qui copient des éléments d’un tableau d’Integer vers un tableau d’int et vice versa, y compris le cas où de nouveaux objets Integer sont créés à partir de valeurs int: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Analysez et expliquez les différences de performance et de comportement entre ces approches.
Avez-vous utilisé le composant ExecutorService dans vos projets pour gérer les threads?
Comment la gestion des exceptions est-elle effectuée lors de l'exécution des flux Stream en Java?