Sobes.tech

Java

Implementare il trasferimento di fondi tra due conti. Si consideri che questa è una soluzione di produzione Parametri di input: @param fromAccountId identificativo unico dell'utente che trasferisce fondi @param toAccountId identificativo unico dell'utente a cui vengono trasferiti i fondi @param amount importo del trasferimento. Numero positivo public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("L'importo deve essere > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("L'account non può essere lo stesso"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Account non trovato")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Account non trovato")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo insufficiente"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }

188

Qual è la differenza tra le aree di Singleton e Prototype nel contesto di Spring Framework?

Junior — Middle
187

Hai eseguito operazioni di gestione delle transazioni con l'annotazione @Transactional?

Junior — Middle
187

Quali componenti include l'architettura di Kafka e come interagiscono tra loro?

Junior — Middle
186

Hai mai avuto un'esperienza di disaccordo con una decisione tecnica o architettonica del team? Come hai agito?

186

Qual è la complessità temporale di inserire un elemento nel mezzo di una lista collegata se hai già un array pieno?

Junior — Middle
185

Parlami di te, della tua esperienza e dei tuoi principali successi.

185

Come misurare l'efficacia del lavoro con i dati e a cosa influisce?

Junior — Middle
185

Cosa influisce sui tempi di inserimento di un elemento alla fine di una lista collegata?

Junior — Middle
184

Quale struttura dati è alla base dell'implementazione di HashMap e come funziona?

Junior — Middle
184

Puoi spiegare cos'è Gson e come funziona con i campi durante la serializzazione e deserializzazione?

Junior — Middle
184

Come si può attraversare gli elementi di una collezione implementata tramite LinkedList?

Junior — Middle
183

Spiega cosa fa l'annotazione @Transactional nel contesto della gestione delle transazioni nelle applicazioni Java.

Junior — Middle
182

Spiega il concetto di coerenza dei dati nei sistemi di archiviazione delle informazioni.

Junior — Middle
182

Come distinguere i diversi tipi di raccoglitori di rifiuti e quali sono le loro caratteristiche?

Junior — Middle
180

Perché separare gli oggetti from e to (anziché lavorare direttamente con first e second)?

180
/11