协程

协程Coroutine可以理解成轻量的线程,运行在线程中的非阻塞的Task;协程不会与特定的线程绑定,它可以在不同的线程之间灵活切换。

相关API:

  • CoroutineContext

Read More

基础语法

open关键字

Kotlin 的类,默认是不允许继承的,除非这个类明确被 open 关键字修饰了。另外,对于被 open 修饰的普通类,它内部的方法和属性,默认也是不允许重写的,除非它们也被 open 修饰了

inner关键字

默认情况下,kotlin中的嵌套类是静态内部类,不会持有外部类饮用。inner修饰时才能引用外部成员,才可能出现内存泄漏,所以加上inner之后就要注意风险了

sealed

1
2
3
4
5
6
println(Human.MAN == Human.MAN)
println(Human.MAN === Human.MAN)

输出
true
true

加强版的枚举。每一个枚举的值,它在内存当中始终都是同一个对象引用。如果想要枚举的值拥有不一样的对象引用,就需要密封类

Read More

注解

Kotlin 常见的元注解有四个:

  • @Target,这个注解是指定了被修饰的注解都可以用在什么地方,也就是目标;
  • @Retention,这个注解是指定了被修饰的注解是不是编译后可见、是不是运行时可见,也就是保留位置;
  • @Repeatable,这个注解是允许我们在同一个地方,多次使用相同的被修饰的注解,使用场景比较少;
Read More