什么是Scala
scala(Scalable Language)是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。
Scala运行于Java平台(java虚拟机上),并兼容现有的Java程序。
面向对象(将对象当作参数传来传去) + 面向函数(方法,可以将函数当作参数传来传去)
为什么要学Scala
优雅:这是框架设计师第一要考虑的
速度快
Spark就是使用Scala编写的,因此为了更好的学习Spark,需要掌握Scala这门语言
=Spark的兴起,带动Scala语言的发展!=
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开发团队。
Scala语言特点
Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。
2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
3)Scala单作为一门语言来看,非常的简洁高效。
4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。
Scala是一门可扩展的语言(scalable),该语言只定义了最少的部分,其它部分使用类(class)和方法(method)实现,这样可以根据计算机语言和软件的发展不断扩展和改进。例如算术运算中的加法运算符号+并不是Scala的保留字(reserved word),而是一种方法(method)。
Scala是一种形式纯净的面向对象(object-oriented)语言:所有的数值(value)都是对象(object),所有的运算(operation)都是方法调用(method call)。面向对象编程的产生其实很简单:除了最微不足道的程序,所有程序都需要某种结构。最直观的方法是将数据和运算封装起来(container),然后还可以整体作为数值列入其它的封装。这样的封装就是对象。
同时Scala也是一门充分发展的函数式(functional)语言。函数式语言有两个主要的理念。其一个是函数(function)是第一级别数值(first-class value),即函数是和整数、字符串等的位阶一样的数值,可以作为其它函数的参数、返回值,可以作为变量存储等。其二是运算将输入数值映射到输出数值,而不是对数据进行原地改动,或者说不产生边际作用(side effect)。(虽然Scala具有很好的函数式语言特性,它并不排斥命令式编程。)
Scala环境搭建
1)安装步骤
(1)首先确保jdk1.8安装成功
(2)下载对应的Scala安装文件scala-2.11.8.zip
(3)解压scala-2.11.8.zip,我这里解压到E:\02_software
(4)配置Scala的环境变量
2)测试
定义两个变量n和n2,并计算n和n2两个变量的和。