Skip to main content
Journey Uncommon Logo
JourneyUncommon

Kotlin Interview Questions (505 to practise)

Kotlin is the default language for Android and a common Java replacement on the JVM. Coroutines are its defining feature.

Null safety and platform types, coroutine scopes and cancellation, suspend function semantics, inline and reified generics, and data class copy behaviour.

Total questions
505
Easy
63
Medium
218
Hard
224

Where it shows up: Android apps, JVM back ends adopting Kotlin, and multiplatform mobile teams.

Sample Kotlin questions

Twenty real Kotlin questions from the library, code snippet included. Nothing here is paraphrased for search engines. It is the same text a signed-in user sees.

Sign in to answer

Everything above is free to read. Answering needs a free account.

We keep the correct answer, the explanation and the scoring behind sign-in so the platform stays honest, which is why the answer options and the worked explanation for every Kotlin question stay behind a free account. Signing in is free and takes a few seconds.

Kotlin topics covered

58 distinct Kotlin topics are tagged across the library. These are the real topic labels stored on the questions, not a hand-written list.

  • Flow cold streams (20)
  • StateFlow SharedFlow (18)
  • inline functions (18)
  • structured concurrency Job tree (17)
  • Volatile and atomics on JVM (17)
  • the Continuation interface (17)
  • inline class boxing rules (16)
  • value class codegen (16)
  • suspend functions usage (15)
  • Flow backpressure buffer conflate (15)
  • class delegation by (15)
  • coroutine cancellation cooperation (14)
  • property delegation lazy (14)
  • sealed class hierarchies (14)
  • crossinline noinline (14)
  • suspend compiled to state machine (13)
  • data classes (11)
  • coroutine dispatchers context (11)
  • coroutines basics launch async (11)
  • COROUTINE_SUSPENDED sentinel (11)
  • platform types mechanics (11)
  • JVM memory model happens-before (11)
  • type erasure on the JVM (11)
  • continuation-passing style transform (11)
  • generics variance in out (11)
  • type-safe builders DSLs (10)
  • exception handling in coroutines (10)
  • JVM bytecode for inline functions (10)
  • tailrec functions (9)
  • Java interop JvmStatic JvmName (9)
  • invokedynamic for lambdas (9)
  • reified type parameters (8)
  • safe call (7)
  • star projections (7)
  • companion object as a JVM class (7)
  • dispatch virtual vs static (7)
  • null safety and double bang (6)
  • operator overloading (6)
  • higher-order function composition (6)
  • sealed classes basics (4)
  • elvis operator (4)
  • lambdas and trailing lambdas (4)
  • default and named arguments (4)
  • extension functions (3)
  • val vs var (3)
  • string templates (3)
  • when expressions (2)
  • scope functions let apply run (2)
  • collections map filter (2)
  • destructuring declarations (2)
  • Continuation interface (2)
  • companion object basics (1)
  • smart casts (1)
  • nullable collection handling (1)
  • ranges and for (1)
  • generics variance (out) (1)
  • null safety (1)
  • double bang (1)

Search and filter every Kotlin question

Difficulty