P
prepair.app
Interview starten →
EnglishУкраїнськаРусскийDeutsch
🟩

Junior Android (Kotlin)Android-Interviewfragen

Junior · keine Erfahrung / unter 1 Jahr

Android-Interviews drehen sich um Kotlin-Idiome, Coroutines und den Lifecycle der Plattform – die meisten Senior-Fragen wollen im Kern nur wissen, ob dir klar ist, dass dein Prozess jederzeit beendet werden kann. Es folgen die am häufigsten gestellten Fragen, jede mit einer Musterantwort. Junior: Grundlagentheorie, Definitionen und einfache Praxisfälle.

Probier es aus — kein Konto nötig
Deine Frage wird vorbereitet…

Themen zur Vorbereitung

Kotlin-Sprachfeatures
Coroutines und Flow
Android-Lifecycle
Jetpack Compose
Architektur und DI
Room, Retrofit und Testing

9 Fragen auf Junior-Niveau mit Antworten

1

Was ist der Unterschied zwischen `val` und `var`, und macht `val` etwas unveränderlich?

Antwort

val bedeutet, dass die Referenz nicht neu zugewiesen werden kann; var bedeutet, dass sie es kann. Das Objekt selbst macht das nicht unveränderlich – ein val, das eine MutableList hält, kann trotzdem Elemente hinzubekommen. Für echte Unveränderlichkeit brauchst du einen unveränderlichen Typ, nicht nur eine unveränderliche Bindung.

2

Wie funktioniert Kotlins Null Safety?

Antwort

Typen sind standardmäßig non-null, ein nullable Typ wird als String? geschrieben. Der Compiler zwingt dich dann, den Null-Fall zu behandeln – mit ?., ?: oder einem Smart Cast nach einer Prüfung. !! steigt daraus aus und wirft eine Exception, weshalb es in eigenem Code ungefähr nie vorkommen sollte.

3

Was ist eine data class, und was bringt sie dir?

Antwort

Eine Klasse, deren Zweck es ist, Werte zu halten. Der Compiler generiert equals, hashCode, toString, copy und Destrukturierung aus den Properties des primären Konstruktors. Der Haken: Nur diese Properties fließen ein, ein im Body deklariertes Feld bleibt still und heimlich außerhalb von equals.

4

Was ist der Unterschied zwischen `==` und `===` in Kotlin?

Antwort

== ruft equals auf – struktureller Vergleich. === vergleicht Referenzen, also ob es dasselbe Objekt ist. Das ist genau umgekehrt zu Java, wo == die Referenzprüfung ist, und darüber stolpern Leute, die von dort kommen.

5

Wie sieht der Activity-Lifecycle aus, und welche Callbacks zählen am meisten?

Antwort

onCreate einmal beim Erstellen, onStart und onResume, während sie sichtbar und interaktiv wird, dann onPause, onStop und onDestroy beim Verlassen. Wichtig sind die Paare: Ressourcen in onStart holen, in onStop freigeben. Der häufige Fehler ist, eine Ressource über onStop hinweg zu halten, wodurch sie lebendig bleibt, während die App im Hintergrund ist.

6

Was passiert mit einer Activity bei Rotation, und warum ist das ein Problem?

Antwort

Standardmäßig wird sie zerstört und neu erzeugt, sodass alles, was in einem Feld lag, verschwindet und jede laufende Arbeit verwaist. Deshalb gehört Zustand in ein ViewModel, das die Neuerstellung übersteht, und flüchtiger UI-Zustand in onSaveInstanceState. Rotation ist nur der sichtbare Fall – dasselbe passiert bei einer Sprachänderung oder einer Größenänderung.

7

Was ist ein Intent, und was unterscheidet einen expliziten von einem impliziten?

Antwort

Eine Nachricht, die das System bittet, etwas zu starten. Ein expliziter Intent nennt die exakte Komponente und wird innerhalb der eigenen App verwendet. Ein impliziter beschreibt eine Aktion – dies teilen, diese URL öffnen – und das System bietet an, was das kann; das kann auch nichts sein, weshalb ein Fallback nötig ist.

8

Was ist ein ANR, und wie vermeidest du einen?

Antwort

Application Not Responding – das System zeigt den Dialog, wenn der Main Thread etwa fünf Sekunden lang bei Input blockiert ist oder ein Broadcast zu lange braucht. Es passiert, weil jemand Netzwerk-, Disk- oder Datenbankarbeit auf dem Main Thread ausgeführt hat. Der Fix ist strukturell: Alles, was Zeit kosten kann, wandert in eine Coroutine auf Dispatchers.IO, und StrictMode in Debug-Builds meckert, bevor ein Nutzer es je zu sehen bekommt.

9

Was brauchst du, um eine Liste in einer `RecyclerView` anzuzeigen?

Antwort

Ein Layout für eine Zeile, einen Adapter, der ViewHolder erzeugt und bindet, und einen Layout Manager. Der ViewHolder existiert, damit findViewById einmal pro wiederverwendeter Zeile läuft statt bei jedem Binding – genau deshalb hat das Widget die ListView abgelöst. DiffUtil berechnet dann die minimale Menge an Änderungen zwischen alter und neuer Liste, was Item-Animationen ermöglicht und notifyDataSetChanged, das alles neu zeichnet, überflüssig macht.

🦎

Antworten lesen reicht nicht

Im echten Interview sprichst du unter Druck. Cam stellt genau diese Fragen, bewertet jede Antwort und zeigt dir genau, was du verbessern musst.

Junior Android (Kotlin)-Interview üben →
Kostenlos · 3 Interviews im Monat

Weitere Level — Android (Kotlin)

Middle Android (Kotlin)Senior Android (Kotlin)Alle Android (Kotlin)-Fragen

Weitere Spezialisierungen

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP-Backend🦫Junior Go-Backend🟢Junior Node.js-Backend💎Junior Ruby on Rails🔷Junior C++🟨Junior JavaScript