Sobes.tech

Java

Jaké výhody přináší práce ve velké korporátní struktuře?

Junior — Middle
157

V jakých případech je vhodné používat nativní SQL dotazy a v jakých Hibernate?

154

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

154

/** * Rozhraní pro komunikaci s hardwarem bankomatu. */ interface Hardware { /** * Vrací pole s počtem bankovek podle nominálů 50, 100, 500, 1000, 5000. * Metoda pracuje pomalu a vytváří hluk. * * @return pole, kde každý prvek odpovídá počtu bankovek určité nominální hodnoty. * Například, [10, 20, 30, 40, 50] znamená: * - 10 bankovek o nominální hodnotě 50 * - 20 bankovek o nominální hodnotě 100 * - 30 bankovek o nominální hodnotě 500 * - 40 bankovek o nominální hodnotě 1000 * - 50 bankovek o nominální hodnotě 5000 */ int[] getBillsCounts(); /** * Načte do výstupního boxu uvedené bankovky. * * @param billsCounts pole s počtem bankovek podle nominálů [50, 100, 500, 1000, 5000]. * Například, [0, 1, 0, 2, 0] znamená: * - 0 bankovek 50 * - 1 bankovku 100 * - 0 bankovek 500 * - 2 bankovky 1000 * - 0 bankovek 5000 */ void giveBills(int[] billsCounts); } /** * Třída pro implementaci logiky bankomatu. * Zde je třeba psát kód */ class MyATM { /** * Hardware 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; } }

152

Jak vyřešit problém nekonzistence dat: externí volání bylo úspěšné, ale uložení do databáze selhalo?

151

Pověz mi o svém posledním projektu: na čem jsi pracoval, jaké byly úkoly, jaký stack jsi použil?

149

Jak hodnotíte iniciativu VK vytvořit vlastní databázi a jak byste ohodnotili její kvalitu a efektivitu?

Junior — Middle
147

Jaké jsou důsledky vytvoření ObjectMapper jako pole třídy (ne přes Spring)?

140

/** * Metoda spočítá, kolik bodů kandidát získal, * uloží výsledek do databáze a zavolá callback v externí službě */ 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); }); }

130
/2