一. scala的前世今生
联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的
语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。
Pizza和Scala极大地推动了Java编程语言的发展。
- jdk5.0 的泛型,for循环增强,自动类型转换等,都是从Pizza 引入的新特性。
- jdk8.0 的类型推断,Lambda表达式就是从Scala引入的特性。
二. Scala和Java关系
一般来说,学Scala的人,都会Java,而Scala是基于Java的,因此我们需要将Scala和Java以及JVM 之间的关系搞清楚,否则学习Scala你会蒙圈。
一图带你了解Scala和Java以及JVM 之间的关系
三. scala简介
Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。 2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。 3)Scala单作为一门语言来看,非常的简洁高效。 4)Scala在设计时,参考了Java的设计思想,可以说Scala是源于Java,同时也加入了自己的思想,将
函数式编程语言的特点
融合到JAVA中。
早期,scala刚出现的时候,并没有怎么引起重视,随着Spark
和 Kafka
这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性
。
接下来,我们要来学习:
1.为什么要使用scala? 2.通过一个案例对比Java语言和scala语言
四. 为什么要使用scala
- 开发大数据应用程序(Spark程序、Flink程序)
- 表达能力强,一行代码抵得上Java多行,开发速度快。
- 兼容Java,可以访问庞大的Java类库,例如:操作mysql,redis,freemarker等等。
五. scala对比Java
有一个字符串(数字)列表,我们想将该列表中所有的字符串转换为整数。
- Java代码
// 创建一个Integer类型的列表
List<Integer> ints = new ArrayList<Integer>();
for (String s : list) {
ints.add(Integer.parseInt(s));
}
- scala代码
val ints = list.map(s => s.toInt)
还记得在简介中谈到的,scala的主要优势是它的表达性。没错,相比于java而言,scala可以用更少的代码"优雅"地表达出我们所想。所以,scala足以成为我们程序员必须涉猎的语言之一。
本次的分享就到这里了