Java
Ist das ausreichend für die Thread-Sicherheit, wenn in der Klasse zwei Felder mit einem Invariant (eines ist strikt kleiner als das andere) vorhanden sind, die jeweils durch AtomicInteger geschützt sind?
Wie stellt man eine verteilte Transaktion über mehrere Dienste sicher?
Haben Sie Erfahrung im Einsatz von Warteschlangen in Ihren Projekten?
Kannst du ein Beispiel für die Verwendung eines statischen Blocks im Code geben?
Sollte man Tabellen für eine schnellere Abfragegeschwindigkeit aufteilen (Sharding)?
Was sind die Vor- und Nachteile der Verwendung von Protocol Buffer für die Serialisierung von Daten?
Eigenschaften der Verwendung von @Transactional in Spring. Transaktionsisolationsebenen.
Erzählen Sie, wie der Entwicklungsprozess an Ihrem vorherigen Arbeitsplatz vom Geschäftsbedarf bis zum Release organisiert wurde.
Wie wird die Unterstützung von Transaktionen mit der @Transactional-Annotation im Spring Framework implementiert?
Haben Sie in Ihren Projekten mit der Integration von Spring Data und Hibernate gearbeitet?
Wann und wie werden statische Funktionen aufgerufen: beim Objekt oder bei der Klasse?
Haben Sie Erfahrung mit der Methode parallel in der Stream API für die parallele Datenverarbeitung?
Wie wird der Gültigkeitsbereich eines Beans unter Standardbedingungen festgelegt?
Können Sie den Wirkmechanismus der Annotation @SpringBootTest in Spring Boot-Tests erklären?
Welche Ansätze gibt es, um mit einer instabilen Integration umzugehen, die von einer Minute bis zu einem Tag nicht antworten könnte?
Was ist der Leistungsunterschied zwischen der Verwendung primitiver Datentypen und ihrer Objekt-Wrapper?
Vergleichen Sie die Leistung der folgenden Codeausschnitte, die Elemente von einem Integer-Array in ein int-Array und umgekehrt kopieren, einschließlich des Falls, in dem neue Integer-Objekte aus int-Werten erstellt werden: ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { x[i] = y[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = x[i]; } } ``` ```java int SIZE = 1000000; int[] x = new int[SIZE]; Integer[] y = new Integer[SIZE]; for (;;) { for (int i = 0; i < SIZE; ++i) { y[i] = new Integer(x[i]); } } ``` Analysieren und erklären Sie die Unterschiede in Leistung und Verhalten zwischen diesen Ansätzen.
Haben Sie in Ihren Projekten die Komponente ExecutorService zur Steuerung von Threads verwendet?
Wie erfolgt die Behandlung von Ausnahmen bei der Ausführung von Stream-Streams in Java?
Welche Ströme? (klärende Frage nach der Erwähnung von Ein- und Ausgabeströmen)