Expliquez le concept de cohérence des données dans les systèmes de stockage d'informations.
Java
Peut-on inclure une requête géographique dans les paramètres d'une requête HTTP GET ?
Dans quels cas et dans quelles conditions des pertes de données peuvent-elles se produire dans Kafka?
Quels problèmes peuvent survenir si on modifie une collection pendant son parcours?
Qu'est-ce qui influence le temps lors de l'ajout d'un élément à la fin d'une liste chaînée?
Quelle est la complexité temporelle de l'insertion d'un élément au milieu d'une liste chaînée si vous avez déjà un tableau rempli?
Pouvez-vous expliquer ce qu'est Gson et comment il fonctionne avec les champs lors de la sérialisation et de la désérialisation?
Quel est le niveau de difficulté lors de l'augmentation de la taille de ArrayList lors de l'ajout de chaque 1000 éléments?
Quelles difficultés et limitations potentielles peuvent survenir lors de l'utilisation de Kafka dans les systèmes?
Peut-on réutiliser des flux de données (Streams) déjà fermés en Java?
Avez-vous de l'expérience avec le framework Spring pour le développement d'applications?
Sur quel serveur ou plateforme le déploiement de l'application a-t-il été effectué?
Quels composants la architecture de Kafka comprend-elle et comment interagissent-ils entre eux?
Implémenter le transfert de fonds entre deux comptes. Notez qu'il s'agit d'une solution de production Paramètres d'entrée: @param fromAccountId identifiant unique de l'utilisateur qui transfère des fonds @param toAccountId identifiant unique de l'utilisateur à qui les fonds sont transférés @param amount montant du transfert. Nombre positif public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Le montant doit être > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Le compte ne peut pas être le même"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Compte non trouvé")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Compte non trouvé")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Solde insuffisant"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }
Comment évalue-t-on la difficulté de l'opération d'insertion d'un élément dans la partie centrale d'une liste doublement chaînée?
Comment mesurer l'efficacité du travail avec les données et à quoi cela influence-t-il?
Pouvez-vous nommer deux types de méthodes utilisés dans l'API Stream?
Qu'est-ce qui vous motive à envisager de changer de projet actuel?
Dans quels cas est-il préférable d'utiliser la structure de données LinkedList plutôt que d'autres collections?
Quel est le rôle et la finalité des interfaces fonctionnelles en programmation?