代码实例
Scala
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello Scala!")
}
}
👉 名词解释
- object 表示一个伴生对象,简单理解就是一个对象
- main 是一个方法,是程序调用的入口函数
- println 是打印输出语句
👉 代码解析
- 程序编译后产生 2 个字节码文件:HelloWorld$.class 和 HelloWorld.class
- HelloWorld.scala 的 HelloWorld 是对象名字,底层真正对应的类名是 HelloWorld$
- HelloWorld$ 类型的一个静态对象是 MODULE$
👉 运行流程
- 先从 HelloWorld 的 main 方法开始执行
- 再调用 HelloWorld$ 的类方法 HelloWorld$.MODULE$.main
- 最后在 HelloWorld$ 的主方法中执行打印语句的代码
📚 小知识:可以使用反编译工具查看 .class 文件 链接
Java
/**
* fileName: HelloWorld.java
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
模拟实现
使用 Java 模拟 Scala 底层的运行原理
public class TestScala {
public static void main(String[] paramArrayOfString) {
TestScala$.MODULE$.main(paramArrayOfString);
}
}
final class TestScala$ {
public static final TestScala$ MODULE$;
static {
MODULE$ = new TestScala$();
}
public void main(String[] args) {
System.out.println("Test Scala!");
}
}