本文所需要的资料在此百度网盘下:链接:https://pan.baidu.com/s/1ITICjSxYntAuh8oe07Emxw?pwd=x0ib
提取码:x0ib
文章目录
- 1 概述
- 1.1 为什么学习 Scala
- 1.2 Scala 发展历史
- 1.3 Scala 和 Java 关系
- 1.4 Scala 语言特点
- 2. Scala环境搭建
- 3. Scala 插件安装
- 4 HelloWorld 案例
- 4.1 创建 IDEA 项目工程
- 4.2 class 和 object 说明
- 4.3 Scala 程序反编译
- 4.5 关联 Scala 源码
- 4.6 官方编程指南
1 概述
1.1 为什么学习 Scala
1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3)Spark的兴起,带动Scala语言的发展!
1.2 Scala 发展历史
联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基
是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种
语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对
JAVA这门便携式,运行在网络,且存在垃圾回收
的语言产生了极大的兴趣,所以决定
将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)
。
Pizza和Scala极大地推动了Java编程语言的发展。
⚫ JDK5.0 的泛型、增 强for循 环、自动类型转换
等,都是从Pizza引入的新特性。
⚫ JDK8.0 的类型推断、Lambda表达式
就是从Scala引入的特性。JDK5.0和JDK8.0的编辑器就是马丁·奥德斯基写的
,因此马丁·奥德斯基一个人的战斗力抵得上一个Java开发团队
1.3 Scala 和 Java 关系
一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala
和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。
1.4 Scala 语言特点
Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象
和函数式编程
的最佳特性结合在一起的静态类型编程语言
(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。
1)Scala是一门多范式
的编程语言,Scala支持面向对象和函数式编程
。(多范式,就是多种编程方
法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有 的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥
德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中,
因此,对于学习过Java的同学,
只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。
2. Scala环境搭建
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 环境。然后定义两个变量,并计算求和。
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。
4 HelloWorld 案例
4.1 创建 IDEA 项目工程
1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…
2)创建一个 Maven 工程,并点击 next
3)GroupId 输入 com.atguigu->ArtifactId 输入 scala->点击 next->点击 Finish
注意:工程存储路径一定不要有中文和空格。
4)指定项目工作目录空间
5)默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。
在 scala0513 项目上,点击右键-> Add Framework Support… ->选择 Scala->点击 OK
·
注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然 后工具就会自动识别,就会显示 user libary。
6)创建项目的源文件目录
右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。
右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。
7)在 scala 包下,创建包 com.atguigu.chapter01 包名和 Hello 类名,
右键点击 scala 目录->New->Package->输入 com.atguigu.chapter01->点击 OK。
右键点击 com.atguigu.chapter01->New->Scala Class->Kind 项选择 Object->Name 项输入
Hello。
8)编写输出 Hello Scala 案例
在类中中输入 main,然后回车可以快速生成 main 方法;
在 main 方法中输入 println(“hello scala”)
运行后,观察控制台打印输出:
hello scala
hello scala
说明:Java 中部分代码也是可以在 Scala 中运行。
4.2 class 和 object 说明
对第一个程序进行说明
object Hello {
def main(args: Array[String]): Unit = {
println("hello scala")
}
}
Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1)static
Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
2)void
对于无返回值的函数,Scala定义其返回值类型为Unit类
class关键字和Java中的class关键字作用相同,用来定义一个类;
4.3 Scala 程序反编译
1)在项目的 target 目录 Hello 文件上点击右键->Show in Explorer->看到 object 底层生成
Hello$.class 和 Hello.class 两个文件
2)采用 Java 反编译工具 jd-gui.exe 反编译代码,将 Hello.class 拖到 jd-gui.exe 页面
4.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,这个文件夹,就可以看到源码了.
4.6 官方编程指南
1)在线查看:https://www.scala-lang.org/
2)离线查看:解压 scala-docs-2.11.8.zip,可以获得 Scala 的 API 操作。