一、简介
- Scala 是一门以 Java 虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言 (静态语言需要提前编译,如:Java、c、c++ 等,动态语言如:js)
- Scala 是一门多范式的编程语言,Scala 支持面向对象和函数式编程 (多范式,即多种编程方法。有面向过程、面向对象、泛型、函数式四种程序设计方法)
- Scala 源代码 .scala会被编译成 Java 字节码.class,然后运行于 JVM 之上,并可以调用现有的 Java 类库,实现两种语言的无缝对接
- Scala 非常的简洁高效
二、Scala 和 Java 的关系

- 在 Scala 代码中可以使用 Java 的类库和语法
- Scala 和 Java 的源码文件都会被各自的编译器编译成 .class文件运行在 JVM 上
- Scala 的 SDK 中对 Java 的类库做了包装
三、Scala 环境搭建
以在 Windows 系统安装 Scala 2.12 版本为例
-  官网下载地址:https://www.scala-lang.org 
-  首先要在 Windows 系统上安装 JDK 1.8 并配置环境变量 
-  进入官网下载 Scala 安装文件 scala-2.12.11.zip
-  将安装文件解压到一个无中文和空格路径的目录 (如: D:\DevTools)
-  配置 Scala 环境变量 
  SCALA_HOME=D:\DevTools\scala-2.12.11 Path=.......;%SCALA_HOME%\bin
-  打开 cmd 窗口运行 scala 命令检测安装结果 scalaWelcome to Scala 2.12.11 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_212). Type in expressions for evaluation. Or try :help.scala>
四、HelloWorld 案例
- 编写程序源码 HelloWorld.scalaobject HelloWorld {def main(args:Array[String]) : Unit = {println("Hello World!") } }
- 源码说明 - object:关键字,用于声明一个单例对象,通常称为伴生对象;可以实现类似 Java 的 static 静态方法的功能
- main 方法:程序的主入口
- scala 方法组成:def 方法名称(参数名称:参数类型):返回值类型 = {方法体}
- Unit 类型相当于 Java 的 void 类型
- object HelloWorld源码文件经过编译后会生成两个字节码文件,即两个类(class)- HelloWorld 类:程序的主入口,也是伴生对象(单例对象)的伴生类,伴生类的静态属性和方法可以在伴生对象中定义,全局只有一份
- HelloWorld$ 类:程序的具体执行类,也是伴生对象的所属类 ,即伴生对象是该类的属性
 
 
- 打开 CMD 使用 scalac和scala命令编译解释运行源码文件scalac HelloWorld.scala scala HelloWorld
- 编译文件解析 - 编译源文件会生成两个字节码文件:HelloWorld.class和HelloWorld$.class
- HelloWorld.class文件是 main 方法的入口,内部调用的是- HelloWorld$类中自身静态对象(构造方法私有化,静态代码块创建对象)的 main 方法
- HelloWorld$类中的 main 方法调用的是- Predef$类的- println方法
 
- 编译源文件会生成两个字节码文件: