了解Scala是什么?
Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。Scala 是纯面向对象的,每个值都是一个对象,对象的类型和行为由类定义,不同的类可以通过混入(mixin)的方式组合在一起。Scala的设计目的是要和两种主流面向对象编程语言Java 和 C#实现无缝互操作,这两种主流语言都非纯面向对象。
Scala 也是一门函数式变成编程语言,每个函数都是一个值,原生支持嵌套函数定义和高阶函数。Scala 也支持一种通用形式的模式匹配,模式匹配用来操作代数式类型,在很多函数式语言中都有实现。
Scala与Java无缝衔接,Scala类可以调用Java方法,创建Java对象,继承Java类和实现Java接口,这些都不需要额外的接口定义或者胶合代码。
为什么要用scala?
1、优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。
2、速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。
3、能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太重。
学习目的主要是为了Spark、Flink的学习与相关代码的编写
scala特征:
1).Java和scala可以无缝混编,都是运行在JVM上的
2).类型推测(自动推测类型),不用指定类型
3).并发和分布式(Actor,类似Java多线程Thread)
4).特质trait,特征(类似java中interfaces 和 abstract结合)
5).模式匹配,match case(类似java switch case)
6).高阶函数(函数的参数是函数,函数的返回是函数),可进行函数式编程