Scala

在这里插入图片描述

Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。

为什么学习Scala?

1)大数据主要的批处理计算引擎框架Spark是基于Scala语言开发的。
2)大数据主要的流式计算引擎框架Flink也提供了Scala相应的API。
3)大数据领域中函数式编程的开发效率更高,更直观,更容易理解。

Scala的发展历史

联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序的过程变得高效,简单。所以当接触到Java语言后,感受到了这门语言的魅力,所以决定将函数式编程语言的特点融合到Java中,由此发明了两种语言(Pizza & Scala)。
Pizza和Scala极大地推动了Java编程语言的发展。JDK1.5 的泛型、增强for循环、自动类型转换等,都是从Pizza引入的新特性。JDK1.8 的类型推断、Lambda表达式就是从Scala引入的特性。
由上可知,Scala语言是基于Java开发的,所以其编译后的文件也是字节码文件,并可以运行在JVM中。

Scala的特点

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。
Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
Scala单作为一门语言来看,非常的简洁高效,Scala语言表达能力强,一行代码抵得上Java多行,开发速度快。
Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学, 只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

Scala和Java的关系

在这里插入图片描述

一般来说,学 Scala 的人,都需要会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。

Java代码经过Javac编译器编译后,会生成一个.class字节码文件,然后运行在JVM(Java虚拟机)平台上;Scala代码经过Scalac编译器编译后,会生成一个会生成一个.class字节码文件,然后还是运行在JVM平台上。

Java的SDK里有大量的类库,而Scala的SDK里有Java的部分类库、有Scala的特有的类库,然后Scala还对Java的类库做了包装。

Scala与Java的关系是非常紧密的,因为Scala是基于JVM(JAVA虚拟机)的一门编程语言。所有Scala的代码,都需要经过编译为字节码,然后交由JVM来运行。
所以Scala和Java是可以无缝互操作的。Scala可以任意调用Java的代码。所以Scala与Java的关系是非常非常紧密的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值