00

ガイド

KOTLIN INTERVIEW Qs

Kotlin開発者を採用する際の技術面接で使える質問と模範回答。Coroutines、Null Safety、DSL、KMPなどを網羅。

最終更新:2026年5月

01

KotlinのNull Safety機構はJavaとどう違いますか?

Kotlinは型システムの段階でNullを区別します。StringはNon-null、String?はNullableです。?.(safe call)、?:(elvis)、!!(non-null assertion)などの演算子により、コンパイル時にNPEリスクを排除できます。JavaではOptionalがJava 8で導入されましたが、言語レベルの強制力ではありません。

02

CoroutinesとRxJavaの違いを説明してください

Coroutinesは言語レベル(Kotlin標準ライブラリ)でサポートされる軽量スレッドで、コールバック地獄を避けながら順次コードのような非同期処理を書けます。RxJavaは強力ですが学習曲線が急で、ボイラープレートが多くなりがちです。新規プロジェクトではCoroutines + Flowが推奨されます。

03

Kotlin DSLとは何ですか?実践例を挙げてください

DSL(Domain Specific Language)は、特定のドメイン向けに設計された簡潔な構文です。Kotlinでは高階関数とラムダwith receiver(T.() -> Unit)を使って構築します。Gradle Kotlin DSL、Jetpack ComposeのUI記述、Anko(非推奨)が例です。受信者付きラムダと@DslMarkerを使うことで、型安全で誤用しにくいDSLを構築できます。

04

Kotlin Multiplatform Mobile(KMP)の利点と制限を教えてください

利点:ビジネスロジックをiOS/Androidで共有し、UIは各プラットフォームのネイティブで実装できる。FlutterやReact Nativeとは異なり、ネイティブパフォーマンスとルック&フィールを完全に保持できます。制限:UIレイヤーの共有はまだ実験的(Compose Multiplatform)、サードパーティライブラリの互換性に課題があり、ビルド時間が長くなることがあります。

05

sealed classとenum classの違いは何ですか?

enum classは単一のインスタンスしか持てない定数集合です。sealed classは限定されたサブクラス階層を定義し、各サブクラスは独自の状態と振る舞いを持てます。when式でのexhaustive checking(網羅的チェック)に役立ち、APIレスポンスの結果型(Success/Error/Loading)などに広く使われます。

06

Delegation(委譲)パターンの利点は何ですか?

Kotlinのbyキーワードにより、継承の代わりに委譲を簡潔に実装できます。Composition over Inheritanceの原則を実践し、クラスの結合度を下げながら機能を拡張できます。例:class MyCollection<T>(val inner: MutableList<T>) : MutableList<T> by inner

07

お問い合わせ

Kotlin開発者を探していますか?

技術面接のサポート、採用プロセスの相談、または直接Kotlinエンジニアとして参画することも可能です。

Kotlin開発者向け面接質問 2026 | Code Your Reality