1、Scala概述
(1)Spark—新一代内存级大数据计算框架,是大数据处理的重要框架。
(2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
(3)Scala (斯卡拉)
(4)Scala 是 Scalable Language 的简写,是一门(编程的方式)的编程语言
(5)联邦理工学院洛桑(EPFL )的Martin Odersky于2001年开始设计Scala
(6)Spark的兴起,带动Scala语言的发展!
2、Scala语言诞生小故事
创始人马丁·奥德斯基(Martin
Odersky)是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单,且令人愉悦。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza
& Scala)Pizza和Scala极大地推动了Java编程语言的发展。
jdk5.0 的泛型,for循环增强, 自动类型转换等,都是从Pizza 引入的新特性。 jdk8.0
的类型推断,Lambda表达式就是从scala引入的特性。 且现在主流JVM的javac编译器就是马丁·奥德斯基编写出来的。Jdk5.0
Jdk8.0的编译器就是马丁·奥德斯基写的,因此马丁·奥德斯基 一个人的战斗力抵得上一个Java开发团队 。
3、Scala语言的特点
Scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
(1)Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程
(2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
(3)Scala 单作为一门语言来看, 非常的简洁高效
(4)Scala 在设计时,马丁·奥德斯基 是参考了Java的设计思想,可以说Scala是源于java,同时马丁·奥德斯基
也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala
和 Java相同点和不同点,就可以快速的掌握Scala这门语言
4、Windows下搭建Scala开发环境
(1)Scala需要Java运行时库,安装Scala需要首先安装JVM虚拟机并配置好,推荐安装JDK1.8
在 http://www.scala-lang.org/ 下载Scala2.11.8程序安装包
(2)安装&配置
步骤:
a、检查window环境下是否配置过的jdk:
C:\Users\HP>echo %JAVA_HOME%
D:\java\jdk\JDK8_64
b、配置Scala的环境变量SCALA_HOME
c、将Scala安装目录下的bin目录加入到PATH环境变量在PATH变量中添加:%SCALA_HOME%\bin
d、在命令行窗口中输入“scala”命令打开scala解释器(REPL) 出现下面的内容表示Scala已经正确的执行
C:\Users\HP>scala
Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
Type in expressions for evaluation. Or try :help.
scala> var i=10
i: Int = 10
scala>
5、Scala快速开发入门
DE工具开发 “hello,world”
使用文本工具开发项目可以很好的理解运行原理,但是不利于开发综合项目,所以在实际开发中我们要使用Idea来开发。
具体开发过程请参考资料 《idea开发scala项目.docx》
由于Scala是来源并基于Java语言的,所以在学习时可以采用反编译的方式将scala字节码反编译为java代码,来进行对比学习,这里我们会用到java反编译工具:jd-gui.exe
6、Scala执行流程分析
7、Scala程序开发注意事项(重点)
Scala源文件以 “.scala" 为扩展名
Scala程序的执行入口是main()函数
Scala语言严格区分大小写。
Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后自动加分号),这也体现出Scala的简洁性。
如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号
(尽量一行就写一条语句)。
Scala语言输出的三种方式
val name = “ApacheCN”
val age = 1
val url = "www.atguigu.com"
字符串通过+号连接(类似java)
println(“name=” + name + " age=" + age + " url=" + url)
printf用法 (类似C语言)字符串通过 % 传值。(格式化输出)
printf(“name=%s, age=%d, url=%s \n”, name, age, url)
字符串插值:通过 引 用 ( 类 似 P H P ) p r i n t l n ( s " n a m e = 引用(类似PHP) println(s"name= 引用(类似PHP)println(s"name=name, age= a g e , u r l = age, url= age,url=url")
Scala源码关联
在使用scala过程中,为了搞清楚scala底层的具体实现逻辑,可以查看对应的源码,只要在开发工具中进行关联即可
注释(comment)
介绍
用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;
注释是一个程序员必须要具有的良好编程习惯。 将自己的思想通过注释先整理出来,再用代码去体现。
Scala中的注释类型
单行注释 ://注释文字
多行注释:/* 注释文字*/
文档注释
8、配置IDEA
打开IDEA工具,如图:点击Configure---->点击Plugins
或者: 文件->settings->pulgins 这里也能找到插件安装的位置
重新启动后, Scala的插件安装成功了!
接下来,我们需要把Scala的插件与项目做关联,
操作步骤如下:
第一道Scala程序
object Hello {
def main(args: Array[String]): Unit = {
println("Hello,Scala !!")
}
}
运行程序: