Welche Vor- und Nachteile hat es, Zustandsdaten auf dem Server zu speichern?
Java
Wie oft wird die HTTP GET-Anfrage bei Verwendung von Stream ausgeführt?
Wie hoch ist der Schwierigkeitsgrad bei der Vergrößerung der ArrayList-Größe beim Hinzufügen aller 1000 Elemente?
Kannst du zwei Arten von Methoden nennen, die in der Stream API verwendet werden?
Wurde die Systemstabilität bei Fehlern im letzten Projekt gewährleistet?
Was motiviert Sie dazu, die Möglichkeit eines Wechsels des aktuellen Projekts in Betracht zu ziehen?
Kannst du die wichtigsten Eigenschaften und Merkmale des Spring-Frameworks aufzählen?
Berichten Sie uns von Ihrer Erfahrung bei der Implementierung und Arbeit mit Agile-Methoden in Projekten
Was umfasst das Konzept Happens-Before und welche Aktionen deckt es ab?
Könntest du die bestehenden Arten von Garbage Collectors in der JVM auflisten?
Welches Kriterium wird verwendet, um die Elemente zu sortieren, wenn die Methode entrySet() in der Sammlung aufgerufen wird?
Welche Vorteile bietet die Aufteilung von Daten oder Systemkomponenten in Teile?
Wie ist die Speicherung und Verteilung von Daten in Kafka organisiert?
Haben Sie schon einmal eine Meinungsverschiedenheit mit einer technischen oder architektonischen Entscheidung des Teams gehabt? Wie sind Sie vorgegangen?
Welche Komponenten umfasst die Kafka-Architektur und wie interagieren sie miteinander?
Implementieren Sie die Überweisung von Geldern zwischen zwei Konten. Beachten Sie, dass dies eine Produktionslösung ist Eingabeparameter: @param fromAccountId Eindeutiger Bezeichner des Benutzers, der Gelder überweist @param toAccountId Eindeutiger Bezeichner des Benutzers, an den Gelder überwiesen werden @param amount Überweisungsbetrag. Positive Zahl public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Betrag muss > 0 sein"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Konto kann nicht dasselbe sein"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Konto nicht gefunden")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Konto nicht gefunden")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Saldo ist kleiner als 0"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }
Wie misst man die Effektivität der Arbeit mit Daten und worauf wirkt sie sich aus?
Haben Sie Transaktionsmanagement-Operationen mit der Annotation @Transactional durchgeführt?
Erklären Sie, was die Verwendung des deklarativen Ansatzes in der Programmierung bedeutet und seine wichtigsten Merkmale.