Sobes.tech

Java

Vai reaktīvais kods ar sinhronizētām transakcijām ir labi saderīgs?

161

Kā risināt datu neatbilstības problēmu: ārējais zvans bija veiksmīgs, bet datu bāzē saglabāšana neizdevās?

156

Kādās gadījumos ir ieteicams izmantot nativās SQL vaicājumus, un kad - Hibernate?

155

/** * Saskarne ar ATM aparatūras daļu. */ interface Hardware { /** * Atgriež masīvu ar banknošu skaitu pēc nomināliem 50, 100, 500, 1000, 5000. * Metode darbojas lēni un rada troksni. * * @return masīvs, kur katrs elements atbilst noteikta nomināla banknotu skaitam. * Piemēram, [10, 20, 30, 40, 50] nozīmē: * - 10 banknošu pa 50 rubļiem * - 20 banknošu pa 100 rubļiem * - 30 banknošu pa 500 rubļiem * - 40 banknošu pa 1000 rubļiem * - 50 banknošu pa 5000 rubļiem */ int[] getBillsCounts(); /** * Ielādē norādītos banknotus izsniegšanas kastē. * * @param billsCounts masīvs ar banknošu skaitu pēc nomināliem [50, 100, 500, 1000, 5000]. * Piemēram, [0, 1, 0, 2, 0] nozīmē: * - 0 banknošu pa 50 rubļiem * - 1 banknotu pa 100 rubļiem * - 0 banknošu pa 500 rubļiem * - 2 banknotus pa 1000 rubļiem * - 0 banknotus pa 5000 rubļiem */ void giveBills(int[] billsCounts); } /** * Klase, kas realizē ATM darba loģiku. * Šeit ir jāraksta kods */ class MyATM { /** * ATM aparatūras daļa. */ 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; } }

154

select name from employee group by name having COUNT(DISTINCT lang) >= 2;

154

Pastāsti par savu pēdējo projektu: ar ko nodarbojies, kādi uzdevumi bija, kādu tehnoloģiju izmantojāt?

152

Kā jūs vērtējat VK iniciatīvu izveidot savu datu bāzi un kā jūs novērtētu tās kvalitāti un efektivitāti?

Junior — Middle
150

Kādi ir ObjectMapper kā klases lauka (ne caur Spring) izveides sekas?

143

/** * Metode aprēķina, cik punktu kandidāts ir ieguvis, * saglabā rezultātu datu bāzē un izsauc callback ārējā servisā */ public void process(Candidate c) { transactionTemplate.executeWithoutResult(status -> { Score s = interviewScoreMLService.compute(c); String body = objectMapper.writeValueAsString(Map.of(c.getName(), s)); Mono<ResponseEntity<Void>> request = WebClient.create() .post() .body(BodyInserters.fromValue(body)) .retrieve() .toBodilessEntity(); scoreRepository.saveScore(s); }); }

132
/2