1.1 概述
1.1.1 为什么学习 Scala
1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3)Spark的兴起,带动Scala语言的发展
1.1.2 Scala 发展历史
1.1.3 Scala 和 Java 关系
一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。
Scala和Java及JVM关系图
1.1.4 Scala 语言特点
1.2 Scala 环境搭建
下载地址
Scala 2.12.11 | The Scala Programming Language (scala-lang.org)
1)安装步骤
(1)首先确保 JDK1.8 安装成功
(2)下载对应的 Scala 安装文件 scala-2.12.11.zip
(3)解压 scala-2.12.11.zip,我这里解压到 D:\Tools
(4)配置 Scala 的环境变量
注意 1:解压路径不能有任何中文路径,最好不要有空格。
注意 2:环境变量要大写 SCALA_HOME
2)测试
需求:计算两数 a 和 b 的和。
步骤
(1)在键盘上同时按 win+r 键,并在运行窗口输入 cmd 命令
(2)输入 Scala 并按回车键,启动 Scala 环境。然后定义两个变量,并计算求和。
1.3 Scala 插件安装
默认情况下 IDEA 不支持 Scala 的开发,需要安装 Scala 插件。
1)插件离线安装步骤
(1)建议将该插件 scala-intellij-bin-2017.2.6.zip 文件,放到 Scala 的安装目录D:\Tools\scala-2.12.11 下,方便管理。
(2)打开 IDEA,在左上角找到 File->在下拉菜单中点击 Setting... ->点击 Plugins->点击右 下 角 Install plugin from disk… , 找 到 插 件 存 储 路 径D:\Tools\scala-2.12.11\scala-intellij-bin-2017.2.6.zip,最后点击 ok。
2)插件在线安装(可选)
(1)在搜索插件框里面输入 Scala->点击 Install->点击 ok->点击 apply。
(2)重启 IDEA,再次来到 Scala 插件页面,已经变成 Uninstall。
1.4 HelloWorld 案例
1.4.1 创建 IDEA 项目工程
1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…
2)创建一个 Maven 工程,并点击 next
注意:工程存储路径一定不要有中文和空格。
3)默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。
在 scala项目上,点击右键-> Add Framework Support... ->选择 Scala->点击 OK
注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然后工具就会自动识别,就会显示 user libary。
4)创建项目的源文件目录
右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。
右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。
5)在 scala 包下,创建包 com.atguigu.chapter01 包名和 Hello 类名,右键点击 scala 目录->New->Package->输入 com.atguigu.chapter01->点击 OK。
右键点击 com.atguigu.chapter01->New->Scala Class->Kind 项选择 Object->Name 项输入Hello。
输入测试代码即可。
package com.learn.day01
/**
* @author Lucaslee
* @create 2023-02-01 10:25
*/
/*
object 关键字,声明一个单例对象(伴生对象)
*/
object HelloWorld {
/*
main 方法:从外部可以直接调用执行的方法
def 方法名称(参数名称: 参数类型[泛型]): 返回值类型 = { 方法体 }
*/
def main(args: Array[String]): Unit = {
println("hello world")
System.out.println("hello scala from java")
}
}
1.4.2 class 和 object 说明
//main方法名
// 小括号表示参数列表
//参数声明方式:java ->类型 参数名
//scala->参数名:类型
//public修饰符:scala中没有public关健字,如果不声明访问权限,那么就是公共的
//static修饰符:scala中没有静态语法,所以没有static关健字。
// void关键字:表示返回值,但是不遵面向对象语法,所以scala中没有,但是有Unit类型,表示没有返回值
//scala中: 方法名(参数列表):返回值类型
//scale中声明方法必采用关键字def声明
//scala中方法女观熙值给方法声明,所以中间需要等号连接
// Scala是一个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(模仿静态语法)
//采用伴生对系单例的方式调用方法
Scala完全面向对象,故scala去掉了Java中非面向对象的元素,如static关键字,void类型
1) static
scala无static关键字,由object实现类似静态方法的功能(类名。方法名)class关键字和Java中的class关键字作用相同,用来定义一个类:
2) void
对于无返回值的函数,scala定义其返回值类型为unit类
举一个例子
package com.learn.day01
/**
* @author Lucaslee
* @create 2023-02-01 11:02
*/
//伴生类
class Student(name: String, var age: Int) {
def printInfo(): Unit = {
println(name + " " + age + " " + Student.school)
}
}
// 引入伴生对象
object Student{
val school: String = "atguigu"
def main(args: Array[String]): Unit = {
val alice = new Student("alice", 20)
val bob = new Student("bob", 23)
alice.printInfo()
bob.printInfo()
}
}
1.4.3 Scala 程序反编译
1)在项目的 target 目录 Hello 文件上点击右键->Show in Explorer->看到 object 底层生成Hello$.class 和 Hello.class 两个文件
2)采用 Java 反编译工具 jd-gui.exe 反编译代码,将 Hello.class 拖到 jd-gui.exe 页面
1.5 关联 Scala 源码
在使用 Scala 过程中,为了搞清楚 Scala 底层的机制,需要查看源码,下面看看如何关联和查看 Scala 的源码包。
1)查看源码
例如查看 Array 源码。按住 ctrl 键->点击 Array->右上角出现 Attach Soures…
2)关联源码
(1)将我们的源码包 scala-sources-2.12.11.tar.gz 拷贝到 D:\Tools\scala-2.12.11\lib 文件夹下,并解压为 scala-sources-2.12.11 文件夹
(2)点击 Attach Sources…->选择 D:\Tools\scala-2.12.11\lib\scala-sources-2.12.11,这个文件夹,就可以看到源码了
1.6 官方编程指南
1)在线查看:
The Scala Programming Language (scala-lang.org)
2)离线查看:解压 scala-docs-2.11.8.zip,可以获得 Scala 的 API 操作。