I believe the easiest way to answer you question is to make simple project in Kotlin, than got to Tools - Kotlin - Show Kotlin bytecode
in IntelliJ Idea and than Decompile
on the opened page - and you will see on what exactly Kotlin code translated.
For example you have Kotlin code:
fun main(args: Array<String>) {
Test.test()
}
class Test {
companion object TestCompanion{
fun test() {
println("TestCompanion")
}
}
}
Decompiled result:
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");
}
}
}