3 Minuten Lesezeit

Java vs Kotlin – Code im Vergleich

1. Java

Java ist eine objektorientierte, plattformunabhängige und stark typisierte Programmiersprache, die 1995 von Sun Microsystems (heute Oracle) veröffentlicht wurde. Sie wurde entwickelt, um Programme zu schreiben, die auf verschiedenen Geräten (Computer, Smartphones, Server) laufen können – nach dem Motto: “Write once, run anywhere.”

2. Kotlin

Kotlin ist eine statische, objektorientierte und funktionale Programmiersprache, die von JetBrains entwickelt wurde. Sie läuft – wie Java – auf der Java Virtual Machine (JVM) und ist vollständig mit Java kompatibel. Ziel von Kotlin war es, eine modernere, sicherere und kompaktere Alternative zu Java zu schaffen, die gleichzeitig alle bestehenden Java-Bibliotheken weiterverwenden kann. Kotlin unterstützt die gleichen OOP-Grundprinzipien wie Java: Abstraktion, Kapselung, Vererbung und Polymorphismus. Allerdings ist die Syntax einfacher und der Code weniger fehleranfällig.

3. Variablen & Typinferenz

Java

int x = 10;
String name = "das is ein string";

Kotlin

val x = 10
var name = "das ist auch ein string"

In Kotlin erkennt der Compiler den Typ automatisch (Typinferenz) und unterscheidet zwischen val (konstant) und var (veränderbar). In Java müssen Typen explizit angegeben werden.

4. Funktionen

int add(int a, int b) {
    return a + b;
}

Kotlin

fun add(a: Int, b: Int): Int = a + b

Kotlin verwendet das Schlüsselwort fun und erlaubt kompakte Einzeiler-Funktionen.

5.Klassen & Properties

public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

Eine class in Java, die ein property, ein Contructor und einen Getter hat, mit dem man auf die private variable zugreifen kann.

Kotlin

class Person(val name: String)

Kotlin erzeugt Konstruktor, Getter und Setter automatisch — weniger Boilerplate-Code.

6.Null-Sicherheit

String name = null; // kann NullPointerException verursachen

Kotlin

var name: String? = null

Kotlin zwingt dich, Nullwerte explizit zu kennzeichnen (?) und schützt so vor NullPointerExceptions.

7.Schleifen

for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}

Kotlin

for (i in 1..5) {
    println(i)
}

Kotlin verwendet Ranges (1..5) und eine lesbarere Syntax.

8.Collections & Lambda-Ausdrücke

List<String> names = Arrays.asList("lila", "grün", "gelb");
names.forEach(n -> System.out.println(n));

Kotlin

val names = listOf("lila", "grün", "gelb")
names.forEach { println(it) }

Kotlin unterstützt Lambda-Ausdrücke direkt und bietet eine klarere, funktionale Syntax.

9.When vs Switch

switch (tag) {
    case 1: System.out.println("Montag"); break;
    case 2: System.out.println("Dienstag"); break;
}

Kotlin

when (tag) {
    1 -> println("Montag")
    2 -> println("Dienstag")
}

In Kotlin ist das switch ein when.

10.String Interpolation

String name = "Laila";
System.out.println("Hallo " + name);

Kotlin

val name = "Laila"
println("Hallo $name")