Wie man ein Kotlin-Vorstellungsgespräch besteht: Top-Fragen von A bis Z

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Wie man ein Kotlin-Vorstellungsgespräch besteht: Top-Fragen von A bis Z



Ein Kotlin-Vorstellungsgespräch ist nicht nur eine Überprüfung der Syntax. Arbeitgeber möchten sehen, dass Sie die Philosophie der Sprache verstehen: Nullsicherheit, funktionaler Stil, Redewendungen und Besonderheiten der Kompilierung. In diesem Artikel haben wir die häufigsten Fragen analysiert – von grundlegend bis fortgeschritten. Bereiten Sie sich zu 100% auf das Interview vor.



1. Grundlegende Fragen: Syntax und Null Safety



Das Vorstellungsgespräch beginnt normalerweise mit den Grundlagen. Folgendes müssen Sie unbedingt wissen.



Welche Datentypen gibt es in Kotlin und wie unterscheiden sie sich von Java?

Kotlin ist eine statisch typisierte Sprache. Alle Typen sind Objekte, es gibt keine primitiven Typen (aber der Compiler kann optimieren). Die wichtigsten Typen: Int, Double, Boolean, String, Array. Im Gegensatz zu Java gibt es in Kotlin kein new zum Erstellen von Objekten, und nullable Typen werden explizit mit einem ? gekennzeichnet.



Was ist Null Safety und wie implementiert Kotlin sie?

Null Safety ist ein eingebauter Schutz vor NullPointerException. Typen werden in nullable (String?) und non-null (String) unterteilt. Für den sicheren Zugriff verwenden Sie die Operatoren:

val name: String? = nullprintln(name?.length)       // sicherer Aufruf -> nullprintln(name?.length ?: 0)  // Elvis-Operator -> 0println(name!!.length)      // Erzwingung -> NPE, wenn null


Worin unterscheidet sich val von var?

  • val – unveränderliche Referenz (read-only). Analog zu final in Java.
  • var – veränderliche Referenz (mutable).

Wichtig: val garantiert nicht die Unveränderlichkeit des Objekts selbst, sondern nur der Referenz.



2. Fortgeschrittene Konstrukte: Klassen, Funktionen und Sealed



Hier wird die Fähigkeit geprüft, prägnanten und sicheren Code zu schreiben.



Was ist eine Data Class und welche Methoden generiert sie?

data class – eine Klasse zur Datenspeicherung. Der Compiler generiert automatisch: equals(), hashCode(), toString(), copy() und componentN().

data class User(val id: Int, val name: String)val user = User(1, "Alice")val copy = user.copy(name = "Bob")println(user) // User(id=1, name=Alice)


Was ist eine Sealed Class und wann sollte man sie verwenden?

sealed class – eine eingeschränkte Klassenhierarchie. Alle Unterklassen müssen in derselben Datei deklariert werden. Ideal zur Darstellung von Zuständen (z. B. Ladeergebnis).

sealed class Result {    data class Success(val data: String) : Result()    data class Error(val message: String) : Result()    object Loading : Result()}

fun handle(result: Result) = when (result) { is Result.Success -> println(result.data) is Result.Error -> println(result.message) Result.Loading -> println("Loading...")}

Vorteil: when muss vollständig sein – der Compiler überprüft alle Varianten.



Was sind Extension Functions und wie funktionieren sie?

Extension Functions ermöglichen es, einer bestehenden Klasse eine neue Methode hinzuzufügen, ohne Vererbung. Tatsächlich sind es statische Funktionen, die eine Instanz der Klasse als erstes Argument nehmen.

fun String.isEmail(): Boolean = this.contains("@")println("test@mail.ru".isEmail()) // true


3. Funktionale Programmierung: Lambdas, Collections, Scope-Funktionen



Kotlin nutzt aktiv den funktionalen Ansatz. Seien Sie bereit für Fragen zur Arbeit mit Collections und Scope-Funktionen.



Welche Scope-Funktionen kennen Sie? Worin unterscheiden sie sich?

Die wichtigsten: let, run, with, apply, also. Der Hauptunterschied ist der Kontext (this oder it) und der Rückgabewert.

Blogs

Buchempfehlungen

FunktionKontext