Java
¿La tarea se formuló como "reducir la latencia", y buscaste la solución tú mismo?
¿Alguna vez ha actuado como líder de características?
¿Cómo funciona la combinación de Kafka + Redis sorted set + programador externo para notificaciones retrasadas?
¿Qué recolectores de basura (Garbage Collectors) conoces en Java? ¿Hay recomendaciones para el uso de diferentes tipos?
¿Has tenido experiencia trabajando con productos de IA/ML?
¿Qué es preferible en la pila?
Cuéntame sobre el proceso de desarrollo (Ágil/Scrum). ¿Cómo se evalúan las tareas?
7. Está probando el formulario para agregar nuevos productos en el panel de administración. Crea un nuevo producto, hace clic en el botón Guardar y ve una pantalla blanca vacía. ¿Describe tus acciones posteriores?
¿Cuáles son los dos tipos principales de operaciones en la API de Stream?
¿Alguna vez ha trabajado con Spring Data y Hibernate? ¿Qué problemas de rendimiento ha resuelto?
Proporcione un ejemplo en el que no sea necesario utilizar una arquitectura de microservicios y mencione un par de razones.
¿Para qué tareas sería adecuado Istio?
Implementa una caché LRU con reemplazo de valores antiguos (implementación básica)
¿Qué temas de Kafka estarán en el sistema de informes, quién produce y quién consume?
Escribir una consulta SQL: seleccionar los títulos de todos los libros que tienen más de tres autores.
¿Se puede usar volatile para una variable long y en qué escenarios es seguro hacerlo?
/** * Interfaz para interactuar con el hardware del cajero automático. */ interface Hardware { /** * Devuelve un array con la cantidad de billetes por denominaciones 50, 100, 500, 1000, 5000. * El método funciona lentamente y genera ruido. * * @return array donde cada elemento corresponde a la cantidad de billetes de una denominación específica. * Por ejemplo, [10, 20, 30, 40, 50] significa: * - 10 billetes de 50 rublos * - 20 billetes de 100 rublos * - 30 billetes de 500 rublos * - 40 billetes de 1000 rublos * - 50 billetes de 5000 rublos */ int[] getBillsCounts(); /** * Carga en la caja de salida los billetes indicados. * * @param billsCounts array con la cantidad de billetes por denominaciones [50, 100, 500, 1000, 5000]. * Por ejemplo, [0, 1, 0, 2, 0] significa: * - 0 billetes de 50 rublos * - 1 billete de 100 rublos * - 0 billetes de 500 rublos * - 2 billetes de 1000 rublos * - 0 billetes de 5000 rublos */ void giveBills(int[] billsCounts); } /** * Clase para implementar la lógica de funcionamiento del cajero automático. * Aquí se debe escribir el código */ class MyATM { /** * Hardware del cajero automático. */ Hardware hardware; public boolean withdraw(int amount) { int[] counts = hardware.getBillsCounts(); int[] nom = {50, 100, 500, 1000, 5000}; int[] toGive = new int[5]; for (int i = 4; i >= 0; i--) { int needed = amount / nom[i]; int use = Math.min(needed, counts[i]); toGive[i] = use; amount -= use * nom[i]; } if (amount != 0) { return false; } hardware.giveBills(toGive); return true; } }
¿Cuándo se debe aplicar el principio de Inversión de Dependencias y cuándo no (relación con YAGNI)?
¿Qué ámbitos hay en Spring? ¿Qué es el ámbito singleton?
Cuéntame sobre el teorema de CAP. ¿Qué es y para qué sirve?