跳到主要内容

Java/Kotlin 基础知识体系概览

概述

Android 开发的语言基础已从 Java 全面转向 Kotlin First。Google 在 2019 年宣布 Kotlin 为 Android 首选语言,目前超过 95% 的 Top 1000 应用使用 Kotlin。掌握 Kotlin 的核心特性和与 Java 的互操作是 Android 开发者的基本功。

核心知识点

为什么选择 Kotlin?

特性JavaKotlin
空安全运行时 NPE编译时检查
数据类手写 getter/setter/equals/hashCodedata class 一行搞定
扩展函数不支持原生支持
协程Thread / ExecutorService轻量级协程
函数式编程Lambda(Java 8+)一等公民
代码量减少约 40%
互操作性100% 兼容 Java

知识体系结构

1. Kotlin 基础语法

变量声明(val/var)、数据类型、控制流(when/if 表达式)、函数定义、空安全(?.!!?:)、类型推断、字符串模板——这些是写 Kotlin 的第一步。

2. Kotlin 面向对象

data classsealed classenum classobject 单例、伴生对象(companion object)、抽象类与接口——Kotlin 的 OOP 比 Java 更简洁但同样强大。

3. 函数式编程

高阶函数、Lambda 表达式、内联函数(inline)、扩展函数、作用域函数(let/run/with/apply/also)——函数式编程能力是 Kotlin 的核心优势之一。

4. 集合操作

List/Set/Map 的不可变与可变版本、filter/map/flatMap 等操作符、Sequence 惰性序列、集合变换链——这是日常开发中最高频使用的 API。

5. 协程基础

suspend 函数、CoroutineScopelaunch/async、结构化并发(Structured Concurrency)——协程是 Android 异步编程的标准方案,取代了 AsyncTask 和 RxJava 的大部分使用场景。

6. 泛型

泛型类/函数、in/out 协变逆变(对应 Java 的 ? extends / ? super)、reified 内联类型参数、类型擦除——泛型是理解框架源码的基础。

7. 委托

属性委托(by lazyobservablevetoable)、自定义委托、类委托(by 接口实现委托)——委托模式在 Android 中广泛使用(ViewModel、SharedPreferences 等)。

8. Kotlin DSL

DSL 构建原理、带接收者的 Lambda(T.() -> Unit)、Gradle Kotlin DSL——理解 DSL 有助于写出更 Kotlin-idiomatic 的代码。

9. Java 与 Kotlin 互操作

@JvmStatic@JvmField@JvmOverloads、SAM 转换、空安全桥接——实际项目中经常需要混用 Java 和 Kotlin 代码。

学习路径

面试重点

Android 面试中 Kotlin 基础高频考点:

  1. val vs var、空安全机制
  2. data class vs 普通类的区别
  3. 作用域函数(let/run/with/apply/also)的区别与使用场景
  4. 协程 vs 线程的区别
  5. sealed class 的应用场景
  6. 扩展函数的原理(编译后是什么)

相关链接