¿Puedes nombrar dos tipos de métodos utilizados en la API de Streams?
Java
¿Cómo se evalúa en términos de dificultad la operación de insertar un elemento en la parte central de una lista doblemente enlazada?
¿Cuál es el nivel de dificultad al aumentar el tamaño de ArrayList al agregar cada 1000 elementos?
¿Tiene experiencia trabajando con el framework Spring para el desarrollo de aplicaciones?
¿En qué casos y bajo qué condiciones pueden ocurrir pérdidas de datos en Kafka?
¿Qué le motiva a considerar la posibilidad de cambiar de proyecto actual?
¿Qué afecta a los costos de tiempo al agregar un elemento al final de una lista enlazada?
¿Qué métodos permiten garantizar la tolerancia a fallos del servicio y su rápida recuperación sin interrumpir el funcionamiento de todo el sistema?
¿Cuál es el papel y la finalidad de las interfaces funcionales en programación?
¿Puede explicar qué es un grupo de hilos ForkJoin y cómo funciona?
¿Ha tenido alguna vez una experiencia de desacuerdo con una decisión técnica o arquitectónica del equipo? ¿Cómo actuó?
¿Cómo se organiza el almacenamiento y la distribución de datos en Kafka?
Explique qué significa el uso del enfoque declarativo en programación y sus características clave.
¿Cómo medir la eficacia del trabajo con datos y en qué afecta?
¿Cuáles son las ventajas y desventajas del sistema de colas Kafka?
Implementar la transferencia de fondos entre dos cuentas. Tenga en cuenta que esto es una solución de producción Parámetros de entrada: @param fromAccountId identificador único del usuario que transfiere fondos @param toAccountId identificador único del usuario a quien se le transfieren fondos @param amount cantidad de la transferencia. Número positivo public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("La cantidad debe ser > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("La cuenta no puede ser la misma"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Cuenta no encontrada")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Cuenta no encontrada")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo insuficiente"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }
¿Puedes explicar qué es Gson y cómo funciona con los campos durante la serialización y deserialización?
¿Qué componentes incluye la arquitectura de Kafka y cómo interactúan entre sí?
¿En qué casos es preferible usar la estructura de datos LinkedList en lugar de otras colecciones?
¿Puedes explicar qué significa el término 'objeto inmutable' y cuáles son sus características clave?