同学是不是之前主要写 C++?类型声明在 C++ 当中经常会遇到,但在 Java 系的语言当中是没有所谓的类型声明的,在定义一个 class 的时候就完成了类型定义,所以我不确定你所谓的类型声明是不是 C++ 当中的类型声明?
所以,类型的定义是通过定义 class 来完成的,实例化就是创建一个类的实例。
下面这一句,如果你看不懂,你就当我没说——定义类型,代码当然要在编译前写好,但编译也可以发生在程序运行期间;对于 Kotlin 来讲,这里有点儿复杂,如果是 Kotlin JVM,要看 JVM 的机制,实际上就是类加载那一套,不展开了建议同学自行了解,这个不会影响你学习这门课。
Int 类实际上真正的实现在运行时所在的平台里面定义,例如 JVM 上就对应于 int,JavaScript 上就对应 number,创建 Int 变量会开辟内存存储。你看的 Int 源码(包括很多其他的 Double、Float 还有 Array 等等)那不过是官方为了编译通过写的障眼法而已。