一、簡介
- 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.scala
object 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
方法
- 編譯源文件會生成兩個字節碼文件: