Comment la structure de données HashMap est-elle implémentée et comment assure-t-elle un accès rapide aux éléments?
Java
Comment déterminer si une exception est vérifiable ou non vérifiable dans un langage de programmation?
Quel est l'inconvénient de réaliser un Singleton par code manuel et pourquoi cela est-il considéré comme une mauvaise pratique?
Parlez-nous de la structure interne de la mémoire en Java et comment fonctionnent les ramasse-miettes.
Explique le concept de flux parallèles dans l'API Stream et leurs caractéristiques
Que attrapons-nous dans le catch si une exception se produit à la fois dans le try et lors de la fermeture de la ressource (try-with-resources) ?
Pouvez-vous expliquer ce que signifie le terme 'objet immuable' et quelles sont ses caractéristiques clés?
Comment choisir une implémentation spécifique du composant Bean pour l'injection dans un projet Spring ?
Avantages et inconvénients de JPA vs JDBC?
Quel est le but de l'utilisation des annotations en programmation?
Quels sont les avantages et inconvénients de l'utilisation de Spring Boot dans le développement d'applications Java?
Quel est le rôle des objets immuables en programmation et quels avantages offrent-ils?
Quelles sont les principales catégories de méthodes offrant des possibilités de traitement des données dans l'API Stream?
Dans quelles situations l'utilisation de l'annotation @Transactional dans Spring ne garantit-elle pas le comportement attendu des transactions?
Comment passer un argument de fonction par référence pour que les modifications à l'intérieur de la fonction se reflètent sur la variable d'origine?
Comment se fait le transfert de valeurs en Java lors de l'appel de méthodes : par référence ou par valeur ?
Y a-t-il des retours ou des questions supplémentaires après l'entretien ?
Comment simplifier le traitement si nous voulons traiter plusieurs exceptions de la même manière (Multi-catch) ?
Pourquoi est-il recommandé d'utiliser POST plutôt que GET pour les données confidentielles?
public class Accumulator { private Map<String, Object> data = new HashMap<>(); // ensemble actuel de données private List<Map<String, Object>> dataList = new ArrayList<>(); // lot de données private Map<Instant, String> responses = new HashMap<>(); // réponses du serveur recevant les données private int dataId; /** * Ajoute un champ field avec la valeur value à l'ensemble */ public void add(String field, String value) { data.put(field, value); } /** * Retourne la valeur par le nom du champ field */ public <T> T get(String field) { return (T) data.get(field); } /** * Retourne les réponses du serveur recevant les données */ public String getResponses() { String out = ""; for (String resp : responses.values()) { out += "; " + resp; } return out; } /** * Termine la collecte de l'ensemble actuel de données et l'envoie en lot */ public synchronized void push() { dataList.add(data); if (dataList.size() == 100) { send(); dataList.clear(); } data = new HashMap<>(); data.put("id", dataId++); } /** * Envoie le lot au serveur recevant les données */ private void send() { RestTemplate restTemplate = new RestTemplate(); HttpEntity<List<Map<String, Object>>> request = new HttpEntity<>(dataList); String url = "localhost:20808/msg/incoming"; ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, request, String.class); responses.put(Instant.now(), response.getBody()); } }