| 1. 变量声明 | java String name = "Tom"; int age = 18; | kotlin val name = "Tom" // 不可变<br>var age = 18 // 可变 | Kotlin 自动推断类型;val 相当于 Java 的 final,var 可变。 |
| 2. 函数定义 | java public int add(int a, int b){ return a + b; } | kotlin fun add(a: Int, b: Int): Int = a + b | Kotlin 函数更简洁,fun 关键字,类型写在变量后面。 |
| 3. 类与构造函数 | java public class User { String name; int age; public User(String n, int a){ name=n; age=a; } } | kotlin class User(val name: String, val age: Int) | Kotlin 主构造函数直接写在类名后面。 |
| 4. 数据类(Model) | java class User { private String name; private int age; // getter/setter/toString省略 } | kotlin data class User(val name: String, val age: Int) | Kotlin 的 data class 自动生成 toString()、equals()、hashCode()。 |
| 5. 空指针安全 | java String s = null; int len = s.length(); // NPE! | kotlin var s: String? = null<br>val len = s?.length | ? 表示可空类型,?. 是安全调用符。 |
| 6. if 表达式 | java int max; if(a>b){ max=a; }else{ max=b; } | kotlin val max = if (a > b) a else b | Kotlin 的 if 是表达式,有返回值。 |
| 7. 字符串模板 | java String msg = "Hello " + name; | kotlin val msg = "Hello $name" | Kotlin 用 $变量 插值,简洁明了。 |
| 8. when 分支 | java switch(x){ case 1: ...; break; default: ...; } | kotlin when(x){ 1 -> println("one") else -> println("other") } | when 是更灵活的 switch,支持任意类型匹配。 |
| 9. 集合遍历 | java for(String item : list){ System.out.println(item); } | kotlin for(item in list){ println(item) } | in 替代 :, 语法更直观。 |
| 10. Lambda 表达式 | java list.forEach(item -> System.out.println(item)); | kotlin list.forEach { println(it) } | Kotlin 原生支持函数式写法,it 是默认参数名。 |
| 11. 扩展函数 | ❌(Java 不支持) | kotlin fun String.lastChar() = this[this.length-1] | Kotlin 可为任意类添加新函数,不改动原类。 |
| 12. 默认参数 | java void greet(String name){ greet(name, 18); } void greet(String name,int age){...} | kotlin fun greet(name: String, age: Int = 18){...} | Kotlin 支持默认参数,函数重载更少。 |
| 13. 异步编程 | java new Thread(() -> doWork()).start(); | kotlin GlobalScope.launch { doWork() } | Kotlin 的协程 coroutine 更轻量,管理异步任务。 |
| 14. 单例写法 | java public class Config { private static final Config INSTANCE = new Config(); public static Config get(){return INSTANCE;} } | kotlin object Config { val version = "1.0" } | object 自动实现线程安全的单例。 |
| 15. try-with-resource | java try(FileReader r = new FileReader("a.txt")){...} | kotlin FileReader("a.txt").use { ... } | Kotlin 用 use 扩展函数自动关闭资源。 |