Java支持基本类型+static关键字,使得Java是个不纯粹的OOP语言
Java已经存在很多年,编程思想根深蒂固,不能轻易大方面更新,
这时候
基于ava1.8版本派生出了Scala,基于1.8的新特性——函数式接口和lambada表达式
Scala衍生出一种编程理念:函数式编程
在Scala的方法里会对类进行分类,一般分为
//入口方法:引入数据 返回值:return this(当前对象);
//过程处理:处理业务 返回值:return this(当前对象);
//出口方法:展示结果 返回值:return this(当前对象);
Scala特点:
Scala一切皆对象,纯粹的面对对象语言
Scala支持面向函数编程
Java工程化构建,Scala面向差异化小任务(类似SQL)
Scala中不支持接口
优雅:一行抵多行 scala 基于 java 简化了逻辑编码 (基于函数式接口+lambada表达式)
速度快:静态编译
方便融合hadoop生态圈:spark依赖scala
JAVA
SCALA
字符串
""+""
"""...n..."""
返回值
return
最后一行表达式
访问符
default friendly
default public
默认导入
java.lang.*
java.lang.*;scala;scala.Predef;
数据类型
基本类型+引用类型
全部引用类型
static
支持
不支持
范式
OOP
OOP+函数式编程
接口
interface
trait
OOP
类和对象
单列对象|同一个文件中同名
伴生类class+伴生对象object(隐式创建)
方法
()表示调用
无参()可以缺省Java1.8新特性:
函数式接口:前提是个接口,通常是指只有一个抽象方法的接口
Java内置4个标准函数式接口:
Supplier
Consumer
Function
Predicate
lambada表达式: 简化代码,不用new对象,()- >
lamba表达式的符号表示为 ->,其基本结构形式为:(param1,param2,param3…)-> { }
如果只有一个参数,可以不加小括号,只有一行执行代码,也可以没有箭头后面的大括号,比如 i ->System.Out.Println(i);
如果没有参数 ,只需要一个小括号即可,比如:()-> System.Out.Println(“hello”);
微服务可以理解为分布式,但计算的时候是把数据传输到一台机器上计算的,
哪怕这些数据是分散在不同库内,依旧是在一台机器上集中计算。对单机要求很高
把大量数据迁移到服务器上进行统一计算
从Hadoop开始,不仅仅是分布式存储,还是分布式计算(计算是一段逻辑性代码)
传统开发当中逻辑性代码是放在方法里的,如果把方法变成可序列化可网络传输的,
那么就可把方法传入每一台机器上,在数据所在的节点上,针对这台节点上的数据计算