1 Scala概述
1.1. 什么是Scala
Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。
面向函数和面向对象的混合式编程
1.2. 为什么要学Scala
1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。
2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。
3. 能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。
4.spark分布式运算框架是scala语言编写的
2 salca环境搭建
由于scala是基于java来开发的, 编写的java类可以使用javac命令编译成.class文件被JVM加载到内存中执行 ! 那么scala可以通过scalac命令将编写的scala文件编译成.class文件一样被JVM加载到内存中,因此Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK!
2.1 Windows安装Scala编译器
方式一
访问Scala官网http://www.scala-lang.org/下载Scala编译器安装包,目前最新版本是2.12.x,但是目前大多数的框架都是用2.11.x编写开发的,Spark2.x使用的就是2.11.x,所以这里推荐2.11.x版本,下载scala-2.11.8.msi后点击下一步就可以了!
方式二
解压配置系统环境变量
在windows的控制台输入scala ,显示如下消息说明windows环境搞定!
2.2 Linux安装Scala编译器
下载Scala地址http://downloads.typesafe.com/scala/2.13.1/scala-2.13.1.tgz然后解压Scala到指定目录
解压
配置环境变量,将scala加入到PATH中
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_111
export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.13.1/bin
任意位置输入scala显示如下信息
2.3 IDEA开发工具安装
目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可http://scala-ide.org/download/sdk.html。
由于IDEA的Scala插件更优秀,大多数Scala程序员都选择IDEA,可以到http://www.jetbrains.com/idea/download/下载社区免费版,点击下一步安装即可,安装时如果有网络可以选择在线安装Scala插件。这里我们使用离线安装Scala插件:
1.安装IDEA,点击下一步即可。由于我们离线安装插件,所以点击Skip All and Set Defaul
2.下载IEDA的scala插件,地址http://plugins.jetbrains.com/?idea_ce
3.安装Scala插件:Configure -> Plugins -> Install plugin from disk -> 选择Scala插件 -> OK -> 重启IDEA
2.3.1 scala插件安装
2.3.1.1 离线安装
Plugins à install plugin from disk -à 选择插件 -à restart IDEA即可
2.3.1.2 在线安装
只要显示了scala,及认为scala的插件安装成功了。
2.3.2 创建scala项目
注意: 一般情况下,创建一个project,会默认生成一个同目录的module,该module不需要配置。
如果jdk和sdk不显示,就需要手动去创建。
2.3.2.1 编写一个scala类
1 scala文件都是以.scala结尾的
2 scala中的命名规范和java中的一致
3 scala中的main方法要写在objec修饰的类中
4 scala的执行流程和java的类似 , 先编译再执行,因此有编译期的错误推导
5 scala 代码中的行末尾的分号最好不书写 ,体现其简洁
object Demo1 {
def main(args: Array[String]): Unit = {
println("hello scala")
}
}
2.3.2.2 scala代码中的转义符
scala中的转移符和java中的一致
2.3.2.3 scala的打印输出
scala中的打印输出语法特别简洁:
val name: String = "DOIT"
val age: Int = 2
// 1 换行打印输出
println("hello scala")
// 2 直接打印输出
print("tom")
// 3 使用$ 获取变量值的方式
printf(s"name=$name age=$age")
2.3.2.4 注释
scala中的注释和java中的一样
单行注释 //
多行注释 /**/
文档注释/** */
2.3.2.5 scala关联源码
添加本地下载好的源码包即可
2.3.3 IDEA基本配置
进入到settings配置界面:
字体的配置
字符集:
去掉直接进入到最后一个项目中:
代码提示:ctrl +alt +空格 代码提示
生成变量名 .var ctrl + alt + v