ProAndroidDev

The latest posts from Android Professionals and Google Developer Experts.

Follow publication

Java and Kotlin: A Comprehensive Guide to New and Key Features Across Versions

Dobri Kostadinov
ProAndroidDev
Published in
5 min readOct 27, 2024

This image was generated with the assistance of AI

Introduction

Java Features by Version

Java 8 (2014)

List<String> names = Arrays.asList("John", "Jane", "Doe");
names.forEach(name -> System.out.println(name));
List<String> names = Arrays.asList("John", "Jane", "Doe");
names.stream().filter(name -> name.startsWith("J"))
.forEach(System.out::println);
interface Walkable {
default void walk() {
System.out.println("Walking...");
}
}

Java 9 (2017)

Java 10 (2018)

var list = List.of("Apple", "Banana", "Orange");

Java 11 (2018 — LTS)

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.build();

Java 14 (2020)

String result = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> "Weekend";
case TUESDAY -> "Weekday";
default -> "Unknown";
};

Java 17 (2021 — LTS)

public sealed class Shape permits Circle, Rectangle {
// Code…
}

Kotlin Features by Version

Kotlin 1.0 (2016)

val name: String? = null
println(name?.length)
fun String.addExclamation(): String = this + "!"
println("Hello".addExclamation())

Kotlin 1.1 (2017)

GlobalScope.launch {
val result = async { someLongRunningTask() }
println(result.await())
}

Kotlin 1.3 (2018)

inline class UserId(val id: String)

Kotlin 1.4 (2020)

val runnable: Runnable = Runnable {
println("Running with SAM conversion...")
}

Thread(runnable).start()
val runnable: Runnable = Runnable {
println("Running with SAM conversion...")
}

Thread(runnable).start()
Thread {
println("Running directly with lambda!")
}.start()

Kotlin 1.5 (2021)

Kotlin 1.6 (2021)

Kotlin 1.9 (2023)

Impact on Android Development

Conclusion

Published in ProAndroidDev

The latest posts from Android Professionals and Google Developer Experts.

Written by Dobri Kostadinov

15+ years in native Android dev (Java, Kotlin). Expert in developing beautiful android native apps.

Responses (1)

Write a response