Sobes.tech

Java

V ktorých prípadoch by ste mali použiť natívne SQL dotazy a v ktorých Hibernate?

168

Je reaktívny kód so synchronnými transakciami dobre kompatibilný?

167

Ako hodnotíte iniciatívu VK vytvoriť vlastnú databázu a ako by ste ohodnotili jej kvalitu a efektívnosť?

Junior — Middle
165

Ako vyriešiť problém nekonzistentnosti údajov: externé volanie bolo úspešné, ale uloženie do databázy zlyhalo?

159

/** * Rozhranie na interakciu s hardvérom bankomatu. */ interface Hardware { /** * Vráti pole s počtom bankoviek podľa nominálov 50, 100, 500, 1000, 5000. * Metóda funguje pomaly a vytvára hluk. * * @return pole, kde každý prvok zodpovedá počtu bankoviek určitého nominálu. * Napríklad, [10, 20, 30, 40, 50] znamená: * - 10 bankoviek od 50 rubľov * - 20 bankoviek od 100 rubľov * - 30 bankoviek od 500 rubľov * - 40 bankoviek od 1000 rubľov * - 50 bankoviek od 5000 rubľov */ int[] getBillsCounts(); /** * Nahráva do výstupného boxu uvedené bankovky. * * @param billsCounts pole s počtom bankoviek podľa nominálov [50, 100, 500, 1000, 5000]. * Napríklad, [0, 1, 0, 2, 0] znamená: * - 0 bankoviek 50 * - 1 bankovku 100 * - 0 bankoviek 500 * - 2 bankovky 1000 * - 0 bankoviek 5000 */ void giveBills(int[] billsCounts); } /** * Trieda na implementáciu logiky bankomatu. * Tu je potrebné napísať kód */ class MyATM { /** * Hardvér bankomatu. */ 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; } }

159

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

157

Povedaj mi o svojem zadnjem projektu: s čim si se bavil, kakšne so bile naloge, kateri stack si uporabil?

152

Aké sú dôsledky vytvorenia ObjectMapper ako poľa triedy (nie cez Spring)?

148

/** * Metóda vypočíta, koľko bodov získal kandidát, * uloží výsledok do databázy a zavolá callback v externom servise */ 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); }); }

134
/2