欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

简述Java和Scala的区别

时间:2023-05-01

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。