简述Java和Scala的区别

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<T> => T get(); 提供者

Consumer<T> => void accept(T t); 消费者

Function<T,R> => R apply(T t); 函数定义进出类型

Predicate<T> => boolean test(T t); 预测

lambada表达式: 简化代码,不用new对象,()- >

lamba表达式的符号表示为 ->,其基本结构形式为:(param1,param2,param3…)-> { }

如果只有一个参数,可以不加小括号,只有一行执行代码,也可以没有箭头后面的大括号,比如 i ->System.Out.Println(i);

如果没有参数 ,只需要一个小括号即可,比如:()-> System.Out.Println(“hello”);

微服务可以理解为分布式,但计算的时候是把数据传输到一台机器上计算的,

哪怕这些数据是分散在不同库内,依旧是在一台机器上集中计算。对单机要求很高

把大量数据迁移到服务器上进行统一计算

从Hadoop开始,不仅仅是分布式存储,还是分布式计算(计算是一段逻辑性代码)

传统开发当中逻辑性代码是放在方法里的,如果把方法变成可序列化可网络传输的,

那么就可把方法传入每一台机器上,在数据所在的节点上,针对这台节点上的数据计算

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值