【Scala】为什么编译后生成两个class文件?scala$.class和scala.class的区别

 看下面一段Scala入门的代码:

object HelloScala{
    def main(args:Array[String]):Unit = {
        println("hello, scala~~")
    }
}

 编译后生成如下class文件:

结合这两张截图作一些说明:
1. object表示一个伴生类对象
2. HelloScala就是对象的名字,它底层真正对应的类名是HelloScala$,对象是HelloScala$类型的一个静态对象 MODULE$
3.  当Scala运行时,它的流程如下:
    1)先从HelloScala的main开始执行
    2)然后调用 HelloScala$ 类的方法 HelloScala$.MOUDULE$.main
    3)最后执行println("hello, scala~~")方法

   

   

【参考:尚硅谷Scala】 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值