Scala是一门多范式编程语法,所谓多范式指的就是多种编程风格的语法,Scala主要是一门面向对象编程语言和函数式编程语言。
Scala的发明人是马丁奥德斯基,Scala语言2001年左右诞生的,融合了Java和JS中很多特性。
同时Java中很多特性也是从Scala语言中吸收到,JDK8.0版本拉姆达表达式就是从Scala中吸收到
JDK1.8版本的新特性
Java中函数编程式接口、拉姆达表达式、方法引用、接口的组成、时间日期类、Stream API、Optional类(解决NullPointException的)。
函数式接口:只有一个抽象方法的接口称之为函数式接口,一般情况函数式接口需要使用@FunctionalInterface
Java中的拉姆达(λ)表达式是和Java中的一个接口紧密相关的,接口函数式编程接口(接口中只有一个抽象方法)
语法:(形参列表)-> {方法体;}
拉姆达表达式的简化:
1、形参列表的类型可以省略的,因为拉姆达表达式对应的函数式编程接口的抽象方法是确定的。
2、如果参数列表只有一个 那么形参列表的()可以省略的。
3、如果方法体只有一行代码,而且这一行代码没有return关键字,那么方法体的{}可以省略,而且这一行代码不需要加分号
Java中的方法引用相当于是拉姆达表达式的升级版本,主要就是用来替换整个拉姆达表达式的,当拉姆达表达式的方法体是引用了另外一个类的方法,并且方法体中没有多余的代码时,可以使用方法引用来简化代码。
Scala的运行机制
编写xxx.scala源码文件,源码文件中可以使用Scala的SDK也可以使用Java的SDK
使用scalac编译xxx.scala源码文件成为Java的二进制字节码文件xxx.class
使用scala命令将xxx.class加载到Java的JVM虚拟机当中运行的