Kotlin提供了一种更好的方法来创建单例对象和伴侣对象,以通过类名称访问类成员。太酷了!
但是这两个声明的内存分配是如何工作的,是否像java中的static一样工作,并保留到应用程序生命周期。
答案 0 :(得分:1)
我相信回答您问题的最简单方法是在Kotlin中进行简单的项目,而不是在IntelliJ Idea中进入Tools - Kotlin - Show Kotlin bytecode
,然后在打开的页面中进入Decompile
-您将看到确切的内容Kotlin代码已翻译。
例如,您有Kotlin代码:
fun main(args: Array<String>) {
Test.test()
}
class Test {
companion object TestCompanion{
fun test() {
println("TestCompanion")
}
}
}
反编译结果:
public final class MainKt {
public static final void main(@NotNull String[] args) {
Test.TestCompanion.test();
}
}
public final class Test {
public static final Test.TestCompanion TestCompanion = new Test.TestCompanion();
public static final class TestCompanion {
public final void test() {
System.out.println("TestCompanion");
}
}
}