Was in einem Java-Vorstellungsgespräch gefragt wird, wie man auf Fragen zu JVM, Collections und Multithreading antwortet und wie man das Gespräch probt.
Ein Java-Vorstellungsgespräch prüft nicht die Kenntnis der Syntax – die kennt jeder, der schon Code geschrieben hat. Geprüft wird das Verständnis der Plattform: wie der Speicher funktioniert, warum eine Anwendung unter Last zusammenbricht und was unter der Haube des Frameworks passiert, das man täglich verwendet.
| Phase | Was geprüft wird |
|---|---|
| Screening | Erfahrung, Stack, Gehaltserwartungen |
| Java-Theorie | JVM, Speicher, Collections, Multithreading |
| Live-Coding | wie Sie schreiben und laut denken |
| Architektur | Spring, Datenbanken, Transaktionen, Warteschlangen |
Klassen werden über den ClassLoader geladen und durchlaufen eine Verifikation; der Bytecode wird vom Interpreter mit JIT-Kompilierung „heißer“ Abschnitte ausgeführt. Die erwartete praktische Schlussfolgerung: JIT wärmt den Code auf, daher sind die ersten Sekunden langsamer — daher das „Aufwärmen“ vor dem Lasttest.
Der Heap ist in Generationen unterteilt: die junge (Eden + zwei Survivor) und die alte. Objekte, die mehrere Sammlungen überlebt haben, wandern in die alte Generation. G1 sammelt Regionen und bemüht sich, die Pausen vorhersehbar zu halten. Häufig wird gefragt, wie man ein Speicherleck findet — die Antwort lautet: über einen Heap Dump und die Analyse von Referenzen.
ArrayList gegen LinkedList (Indexzugriff gegen Einfügen), HashMap und was bei einer Kollision passiert, warum der Schlüssel unveränderlich sein muss, ConcurrentHashMap gegen Hashtable. Hier wird nicht die Definition geschätzt, sondern die Wahl passend zur Aufgabe.
synchronized gegen Lock, volatile und seine Garantien, happens-before, Thread-Pools (ThreadPoolExecutor), CompletableFuture. Fast immer wird eine Aufgabe gestellt: „Zwei Threads erhöhen einen Zähler — was passiert?“ und es wird die Analyse einer Race Condition erwartet.
Bean-Lebenszyklus, Scopes, Proxies und AOP, warum `@Transactional` nicht funktioniert, wenn eine Methode aus derselben Klasse aufgerufen wird (Self-Invocation über Proxy). Diese Frage sortiert viele aus.
N+1-Abfragen, Lazy- und Eager-Loading, Caches der ersten und zweiten Ebene, Transaktionen und Isolationsstufen. Oft wird darum gebeten, ein Problem in einem Codeabschnitt mit Entities zu finden.
JUnit und Mockito, Integrationstests versus Unit-Tests, Maven/Gradle, CI. Geprüft wird, ob Sie Code bis zur Produktion bringen.
Die Struktur funktioniert: These → Begründung → Beispiel → Einschränkung. Der letzte Schritt ist das, was den Praktiker auszeichnet.
«Für diesen Fall würde ich ConcurrentHashMap wählen. Der Grund: Es wird aus mehreren Threads gelesen, während Hashtable das gesamte Objekt blockiert. In einem früheren Projekt hat das einen Engpass im Metrik-Cache beseitigt. Einschränkung: Zusammengesetzte Operationen müssen trotzdem explizit umschlossen werden, Atomarität pro Schlüssel rettet nicht.»
— Beispielantwort aus der Praxis der Interviewanalyse
Eine Woche mit 30–40 Minuten, wenn Sie bereits praktische Erfahrung haben: die sieben oben genannten Themen durcharbeiten, die Antworten laut aussprechen und einmal einen vollständigen Dialog durchlaufen. Wenn Ihnen ein Thema (zum Beispiel Multithreading) unklar ist, schließen Sie zuerst diese Wissenslücke.
Ja, aber die Proportionen hängen vom Unternehmen ab. Produktteams stellen häufiger praktische Aufgaben (einen Bug analysieren, eine Abfrage optimieren), große Tech-Unternehmen – klassische Aufgaben zu Arrays, Strings, Hash-Tabellen.
Sagen Sie es direkt und zeigen Sie Ihren Gedankengang: womit es ähnlich ist, wie Sie es überprüfen würden. Der Interviewer unterscheidet fast immer „Ich weiß es nicht, aber ich denke“ von Ausgedachtem, und Letzteres ist ein direkter Minuspunkt.
Nein, aber man muss verstehen, wie Proxys, Transaktionen und der Lebenszyklus einer Bean funktionieren. Genau diese Fragen werden am häufigsten gestellt, und man kann sie nicht durch Auswendiglernen von Annotationen beantworten.
Mit einer Spanne statt einer einzelnen Zahl, mit Bezug auf den Markt. Eine ausführliche Analyse – im Artikel Gehaltsverhandlungen.
Beschreiben Sie die Situation in einem Satz — «Vorstellungsgespräch Java-Entwickler, Spring Boot, fünf Jahre Erfahrung» — und führen Sie den Dialog im Übungstool. Der Trainer stellt Fragen zu Ihrer Rolle und bespricht die Antworten nach dem Gespräch.
Gehen Sie die sieben Themen durch und markieren Sie, wo die Antwort nicht stimmig ist. Dann führen Sie den vollständigen Dialog durch: öffnen Sie HintMeTalk AI, Modus „Trainer“, beschreiben Sie die Stelle mit einem Satz. Nach der Auswertung ist erkennbar, welche Antworten schwach sind – meist sind es zwei bis drei von zehn.
Analysen zu anderen Rollen: frontend, Python, Systemanalytiker. Allgemeine Vorbereitung — im Artikel Vorbereitung auf das Vorstellungsgespräch.
Trainiere diese Fähigkeit in HintMeTalk AI
App öffnen