代码实例
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!");}}
