Scale 概述(下)|学习笔记

简介: 快速学习 Scale 概述(下)。

开发者学堂课程【Scala 核心编程-基础Scale 概述(下)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8876


Scale 概述(下)

 

内容简介:

一、scala 讲解示意图

二、Scala 的类库(sdk)

三、scala 与 java 的对比

四、scala 的崛起

五、学习要求

六、学习目的

 

一、scala 讲解示意图

1、示例图

image.png

2、解说

scala、java 和 jvm 的关系图

java 的代码

HashMap<String,string>hm =new HashMap()

int num = 1...

//以上代码通过 javac 编译器进行编译

//编译后得到.class 字节码文件,将其交予进行各个平台的 jvm 机进行运行

jvm for windows //windows 下的 jvm 机

jvm for linux //linux 下的 jvm 机

jvm for unix //unix 下的 jvm 机

//由于 jvm 机可屏蔽硬件,故可达到运行的效果

字节码文件能够在 jvm 进行运行的工具:java

将字节码加载到对应 jvm 机之中

3、java 可进行代码的编写的原因

(1)、编译器、运行器对语法的支持

(2)、java 开发者、公司提供给程序员的的类库(jdk)

4、改进

马丁奥德斯基本人对 java 语言中部分功能的优缺点、JVM 跨平台机制等的取舍,进行了 java 语言基础上的改进、与增强。

5、演示.scala 源码

(1)、仍继续使用 java 的部分语法

System.out.Printn("hello")//此语法仍被支持

HashMap<String,String> hm= new HashMap() //此语法不被支持

(2)、写入 sacla 的特有语法(java 语法中并不存在)

1val tuple = (1, 20, "hello", 23.9) //元组

查看源码

D 盘>program>scala>scala-source>src>libiary>scala

例如1例中写入了4组数据,对应类型则为 Tuple4.scale,进行打开,其则为定义的元组。

2val map= Map(("no",10),("no2", 40)) //map

//原先的 HashMap 此时并不支持,故进行了 map 的修改

(3)、增加功能-如函数式编程

1偏函数的支持

2函数的柯里化

3高阶函数

4将函数作为参数传递

(4)、对 java 语法的包装

部分语法形式上属于 scala 语法类,但其本质是对 java 类型的接口进行了包装。

 

二、Scala 的类库(sdk)

1、包含的部分

(1)Scala 本身的特有类库

(2) 对 java 类进行包装的类库

2、使用原则

由于 scala 类库将会使用到 java(jdk),则运用此类库时,必须安装 java(jdk)

3、举例

var arr = new Array(Int)(10) //表示定义了一个数组,该数组存放 Int 类型。Scala 内不存在小写 i。空间为10个元素

4、array 的查找

D 盘>program>scala>scala-source>src>libiary>scala>Array-scala

final class Arrary[T](_length:Int) extends.io.Serializable with java.lang.Cloneable

//体现出此 array 继承了 java 的 Serializable。即进行包装的同时对其进行了扩展,增加了其他的功能。

5、运行

欲使 Scala 类库进行运行,其仍然需要被翻译成字节码文件。此时使用的编译器并非 javac,而是 scalac。编译后得到.class 字节码文件,通过 scala 运行将其交予进行各个平台的 jvm 机进行运行

6、关系

scala 基于 jvm 的基础之上

 

三、scala 与  java 的对比

在使用 java 语言的前提下,使用 scala 编译器对其进行编译,由于 scala 编译器相较于 java 的范围更为广阔,故而部分情况下对 java 进行编译是能够得到成功的。

故而,scala 对比 java,scala 更为复杂。

 

四、scala 的崛起

1、背景

大学实验室内运用大数据时,由于马丁奥德斯基对其友人的推荐与 scala 本身对于语法等方面的优势,使得部分受众开始在此群体内开始发展增强,scala 最后衍生为了大数据方面的 spark。

2、卡夫卡的语法

卡夫卡(kafka)同样是以 scala 语法进行编写的

3、spark 的三种编写语言

spark 并非完全使用 scala 进行编写,其存在三种主流语言。

(1)、java

(2)、Python

(3)、Scala(主流)

 

五、学习要求

1、学习掌握 scala 本身的语法、核心及其扩展

扩展包括:设计模式(国内尚未涉及)、阿卡、泛型......

2、学习编程思想

理解 scala 本身的设计理念,站在较高的境界看待问题。

 

六、学习目的

1、由于 scala 基于 java 之上,故而需要将 sacala 与 java 以及 JVM 进行区分,以避免对于 scala 学习的阻碍

2、不存在 java 基础的学习者需要至少首先学习 javaSE,再进行 scala 的学习。

相关文章
|
存储 开发者
数字音频基础(中)| 学习笔记
快速学习数字音频基础(中),介绍了数字音频基础(中)系统机制, 以及在实际应用过程中如何使用。
数字音频基础(中)| 学习笔记
|
存储 人工智能 算法
数字音频基础(下)| 学习笔记
快速学习数字音频基础(下),介绍了数字音频基础(下)系统机制, 以及在实际应用过程中如何使用。
数字音频基础(下)| 学习笔记
|
编解码 开发者
数字音频基础(上)| 学习笔记
快速学习数字音频基础(上),介绍了数字音频基础(上)系统机制, 以及在实际应用过程中如何使用。
数字音频基础(上)| 学习笔记
|
算法 数据挖掘 开发者
Measure for evaluating the goodness of a test(一)| 学习笔记
快速学习 Measure for evaluating the goodness of a test。
Measure for evaluating the goodness of a test(一)| 学习笔记
|
算法 数据挖掘 开发者
Measure for evaluating the goodness of a test(二)| 学习笔记
快速学习 Measure for evaluating the goodness of a test。
Measure for evaluating the goodness of a test(二)| 学习笔记
|
SQL Kubernetes 关系型数据库
阿里云 K8s 环境创建(上)|学习笔记
快速学习阿里云 K8s 环境创建(上)
阿里云 K8s 环境创建(上)|学习笔记
|
Kubernetes 监控 固态存储
阿里云 K8s 环境创建(下)|学习笔记
快速学习阿里云 K8s 环境创建(下)
阿里云 K8s 环境创建(下)|学习笔记
|
分布式计算 算法 Java
Scale 概述(上)|学习笔记
快速学习 Scale 概述(上)。
820 0
|
JavaScript 前端开发 Java
Scale 语言特点|学习笔记
快速学习 Scale 语言特点。
634 0
|
机器学习/深度学习 算法 数据挖掘
总结与回顾(1)| 学习笔记
快速学习总结与回顾(1)