一、Scala 概述
Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
二、Scala语言的特点
Scala是一门以java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
三、Scala的源文件解析
scala的源文件(HelloWorld.scala) 编译后会生成HelloWorld.class(主方法)与HelloWorld中是该类所有的静态对象,就是scala运行时将静态对象做了一层包装。
/**
* Scala的HelloWorld反编译后的文件转换为Java
*/
public class HelloWorld {
public static void main(String[] paramArrayOfString) {
//调用静态的类 HelloWorld$, 我们可以理解scala 在运行时,做了一个包装
HelloWorld$.MODULE$.main(paramArrayOfString);
}
}
final class HelloWorld$ {
public static final HelloWorld$ MODULE$;
static {
MODULE$ = new HelloWorld$();
}
public void main(String[] args) {
System.out.println("Hello World -- Scala");
}
}
四、Scala执行流程分析
第一种: Scala源文件在内存中编译后直接运行,不生成中间文件
scala HelloWorld.scala (缺点是运行时间较长,因为需要编译)
第二种: Scala源文件先编译生成字节码文件.class,然后运行 .class文件生成结果
scala HelloWorld (生成中间文件,但是运行速度快)