Java
Sarcina a fost formulată ca "scăderea latenței", și ai căutat singur soluția?
Ați fost vreodată lider de echipă?
Cum funcționează combinația Kafka + Redis set sortat + planificator extern pentru notificări întârziate?
Ce colectori de gunoi (Garbage Collectors) cunoști în Java? Există recomandări pentru utilizarea diferitelor tipuri?
Ai avut experiență cu produse AI/ML?
Ce este preferabil din punct de vedere al stivei?
Vorbește-mi despre procesul de dezvoltare (Agile/Scrum). Cum sunt evaluate sarcinile?
7. Testați formularul de adăugare a noilor produse în panoul de administrare. Creați un nou produs, faceți clic pe butonul Salvează și vedeți un ecran alb gol. Descrieți pașii următori.
Care sunt cele două tipuri principale de operații în API-ul Stream?
Ați lucrat vreodată cu Spring Data și Hibernate? Ce probleme de performanță ați rezolvat?
Oferiți un exemplu în care nu este necesar să utilizați o arhitectură de microservicii și menționați câteva motive.
Pentru ce sarcini ar fi potrivit Istio?
Implementați un cache LRU cu înlocuirea valorilor vechi (implementare de bază)
Ce subiecte Kafka vor fi în sistemul de rapoarte, cine produce și cine consumă?
Scrieți o interogare SQL: selectați titlurile tuturor cărților care au mai mult de trei autori.
Este sigur să folosești volatile pentru o variabilă long și în ce scenarii este sigur?
/** * Interfață pentru interacțiunea cu hardware-ul bancomatului. */ interface Hardware { /** * Returnează un array cu numărul de bancnote pentru denumirile 50, 100, 500, 1000, 5000. * Metoda funcționează lent și produce zgomot. * * @return array în care fiecare element corespunde numărului de bancnote pentru o anumită denumire. * De exemplu, [10, 20, 30, 40, 50] înseamnă: * - 10 bancnote de 50 de ruble * - 20 bancnote de 100 de ruble * - 30 bancnote de 500 de ruble * - 40 bancnote de 1000 de ruble * - 50 bancnote de 5000 de ruble */ int[] getBillsCounts(); /** * Încarcă în cutia de ieșire bancnotele indicate. * * @param billsCounts array cu numărul de bancnote pentru denumirile [50, 100, 500, 1000, 5000]. * De exemplu, [0, 1, 0, 2, 0] înseamnă: * - 0 bancnote de 50 * - 1 bancnotă de 100 * - 0 bancnote de 500 * - 2 bancnote de 1000 * - 0 bancnote de 5000 */ void giveBills(int[] billsCounts); } /** * Clasa pentru implementarea logicii bancomatului. * Aici trebuie scris codul */ class MyATM { /** * Hardware-ul bancomatului. */ 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; } }
Când trebuie să aplici principiul inversiunii dependenței și când nu (legătura cu YAGNI)
Ce scope-uri există în Spring? Ce este scope-ul singleton?
Vorbește despre teorema CAP. Ce este și la ce folosește?