¿Cómo está implementada la estructura de datos HashMap y cómo garantiza un acceso rápido a los elementos?
Java
¿Tiene experiencia en el uso de la construcción try-with-resources para gestionar automáticamente los recursos en Java?
public class Accumulator { private Map<String, Object> data = new HashMap<>(); // conjunto actual de datos private List<Map<String, Object>> dataList = new ArrayList<>(); // lote de datos private Map<Instant, String> responses = new HashMap<>(); // respuestas del servidor que recibe datos private int dataId; /** * Agrega un campo field con el valor value al conjunto */ public void add(String field, String value) { data.put(field, value); } /** * Devuelve el valor por el nombre del campo field */ public <T> T get(String field) { return (T) data.get(field); } /** * Devuelve las respuestas del servidor que recibe datos */ public String getResponses() { String out = ""; for (String resp : responses.values()) { out += "; " + resp; } return out; } /** * Finaliza la recopilación del conjunto actual de datos y lo envía en un lote */ public synchronized void push() { dataList.add(data); if (dataList.size() == 100) { send(); dataList.clear(); } data = new HashMap<>(); data.put("id", dataId++); } /** * Envía el lote al servidor que recibe datos */ 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()); } }
¿Qué pasa si usamos POST, pero HTTP (no HTTPS)?
¿Cómo se puede configurar la ejecución de acciones específicas al eliminar un bean en el contenedor?
¿Cómo manejar las excepciones en código reactivo?
¿Cómo determinar si una excepción es comprobable o no comprobable en un lenguaje de programación?
¿En qué consiste la desventaja de implementar Singleton mediante código manual y por qué se considera una mala práctica?
¿Puedes explicar qué significa el término 'objeto inmutable' y cuáles son sus características clave?
Cuéntenos sobre la estructura interna de la memoria en Java y cómo funcionan los recolectores de basura.
¿Cuál es el propósito del uso de anotaciones en programación?
Explica el concepto de flujos paralelos en la API Stream y sus características
¿Cómo seleccionar una implementación específica del componente Bean para la inyección en un proyecto Spring?
¿Cuáles son las ventajas y desventajas de usar Spring Boot en el desarrollo de aplicaciones Java?
¿Qué atrapamos en el catch si se produce una excepción tanto en el try como al cerrar el recurso (try-with-resources)?
¿Ventajas y desventajas de JPA vs JDBC?
¿Cómo se realiza la transferencia de valores en Java al llamar a métodos: por referencia o por valor?
¿Cómo se puede pasar un argumento de función por referencia para que los cambios dentro de la función se reflejen en la variable original?
¿En qué situaciones el uso de la anotación @Transactional en Spring no garantiza el comportamiento esperado de las transacciones?
¿Hay retroalimentación o preguntas adicionales después de la entrevista?