Was ist Kotlin?
Kotlin ist eine moderne statisch typisierte Programmiersprache für die JVM. Sie ist vollständig interoperabel mit Java. Kotlin reduziert Boilerplate-Code und erhöht die Lesbarkeit.
Warum wird Kotlin häufig statt Java eingesetzt?
Kotlin benötigt weniger Code für dieselbe Funktionalität. Features wie Null-Safety und Data Classes reduzieren typische Fehler. Das steigert Produktivität und Wartbarkeit.
Was bedeutet Null-Safety in Kotlin?
Kotlin unterscheidet zwischen nullable und non-nullable Typen. NullPointerExceptions werden dadurch bereits zur Compile-Zeit verhindert. Der Entwickler muss explizit mit Null-Werten umgehen.
Unterschied zwischen val und var?
val definiert eine unveränderliche Referenz. var erlaubt das erneute Zuweisen eines Wertes. val wird bevorzugt für sicheren und klaren Code.
Was sind Data Classes?
Data Classes sind Klassen zur reinen Datenhaltung. Kotlin generiert automatisch equals hashCode toString copy und component-Funktionen. Sie reduzieren Boilerplate erheblich.
Was ist eine Sealed Class?
Sealed Classes begrenzen die erlaubten Subklassen. Dadurch sind when-Ausdrücke vollständig prüfbar. Das erhöht Typsicherheit.
Unterschied zwischen open und final?
Klassen und Methoden sind standardmäßig final. Mit open dürfen sie vererbt oder überschrieben werden. Das verhindert unbeabsichtigte Vererbung.
Was sind Extension Functions?
Extension Functions erweitern bestehende Klassen um neue Funktionen. Der ursprüngliche Code bleibt unverändert. Sie verbessern Lesbarkeit und Struktur.
Was ist ein Companion Object?
Ein Companion Object enthält statische ähnliche Member einer Klasse. Es ersetzt statische Methoden aus Java. Der Zugriff erfolgt über den Klassennamen.
Unterschied zwischen object und class?
object definiert ein Singleton. class kann mehrfach instanziiert werden. object wird häufig für Utility-Klassen genutzt.
Was sind Lambdas in Kotlin?
Lambdas sind anonyme Funktionen. Sie können als Parameter übergeben werden. Kotlin unterstützt funktionale Programmierung sehr stark.
Was sind Higher-Order Functions?
Higher-Order Functions akzeptieren Funktionen als Parameter oder geben sie zurück. Sie ermöglichen flexible und wiederverwendbare Logik. Viele Kotlin-Standardfunktionen basieren darauf.
Was ist eine Coroutine?
Coroutines ermöglichen leichtgewichtige nebenläufige Programmierung. Sie sind günstiger als Threads. Kotlin verwaltet Scheduling effizient.
Was bedeutet suspend?
Suspend markiert Funktionen, die pausiert werden können. Sie dürfen nur aus Coroutines aufgerufen werden. Der Code bleibt trotzdem lesbar.
Unterschied zwischen launch und async?
launch startet eine Coroutine ohne Rückgabewert. async liefert ein Deferred-Ergebnis. async wird für parallele Berechnungen genutzt.
Was ist Structured Concurrency?
Coroutines sind an einen Scope gebunden. Wenn der Scope endet, werden alle Coroutines beendet. Das verhindert Leaks.
Was ist CoroutineScope?
CoroutineScope definiert den Lebenszyklus von Coroutines. Er bestimmt, wann sie gestartet und beendet werden. Typische Scopes sind GlobalScope oder ViewModelScope.
Was ist Flow in Kotlin?
Flow ist ein asynchroner Datenstrom. Er liefert mehrere Werte über Zeit. Flow ist kalt und wird erst bei Subscription ausgeführt.
Unterschied zwischen Flow und Observable?
Flow ist Teil von Kotlin Coroutines. Observables stammen aus RxJava. Flow ist leichter und besser in Kotlin integriert.
Was ist immutability in Kotlin?
Immutability bedeutet Unveränderlichkeit von Objekten. Kotlin fördert dieses Prinzip stark. Das verbessert Thread-Sicherheit.
Was ist Smart Cast?
Smart Cast erlaubt automatisches Typcasting nach Typprüfung. Zusätzliche Casts sind nicht nötig. Das vereinfacht den Code.
Was ist when in Kotlin?
when ist eine erweiterte switch-Anweisung. Sie ist ausdrucksstark und typsicher. Besonders nützlich mit Sealed Classes.
Was ist Inline Function?
Inline Functions werden beim Kompilieren eingefügt. Das reduziert Overhead bei Lambdas. Sie verbessern Performance.
Was ist Reified Type Parameter?
Reified erlaubt Zugriff auf Typinformationen zur Laufzeit. Das funktioniert nur bei Inline Functions. Es ersetzt Reflection in vielen Fällen.
Wie funktioniert Java-Interoperabilität?
Kotlin kann Java-Code direkt nutzen. Java kann Kotlin-Klassen ebenfalls verwenden. Bestehende Java-Projekte lassen sich schrittweise migrieren.
Was ist lateinit?
lateinit erlaubt spätere Initialisierung von Variablen. Es wird häufig bei Dependency Injection genutzt. Zugriff vor Initialisierung verursacht eine Exception.
Was ist by lazy?
by lazy initialisiert eine Variable erst beim ersten Zugriff. Das spart Ressourcen. Der Wert bleibt danach konstant.
Was sind Collections in Kotlin?
Kotlin unterscheidet zwischen mutable und immutable Collections. Standardmäßig werden read-only Collections bevorzugt. Das erhöht Sicherheit.
Wie funktioniert Exception Handling in Kotlin?
Exception Handling erfolgt mit try catch finally. Kotlin kennt keine Checked Exceptions. Das vereinfacht Methodensignaturen.
Wann ist Kotlin ungeeignet?
Bei sehr hardwarenaher oder extrem latenzkritischer Programmierung. Auch wenn ausschließlich Java-Tooling gefordert ist. Für JVM-Apps ist Kotlin jedoch meist eine gute Wahl.
Last changeda month ago