companion object - 伴随对象,声明单例的方式
@JvmField + @JvmStatic 注解 - 使用注解标签声明 static 的部分
object 单例 - 静态单例其实和 companion object 类似
const - 包内唯一性,脱离类的束缚,kotlin 的特性,在 java 中会编译生成一个 kotlin.kt 的文件专门对齐提供支持
@JvmField + @JvmStatic 注解,其意思是声明成员和方法使用 JVM 提供的特性
@JvmField - 修饰静态变量
@JvmStatic - 修饰静态方法
@JvmField 和 @JvmStatic 只能写在 object 修饰的类或者 companion object 里,写法虽然有些别扭,但是效果是真的是按 static 来实现的
kotlin 自身提供了一种单例实现方式:object ,直接用来修饰 class ,用 object 修饰的类不能 new 对象,只能使用 object 提供的单例