开发者学堂课程【Scala 核心编程-基础:温故知新】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8897
温故知新
目录
一、 Scala 和 Java 以 jvm 的关系分析图
二、 Windows 下搭建 Scala 开发环境
三、 Linux 下搭建 Scala 开发环境
四、 Scala 语言输出的三种方式(重点)
五、 Scala 源码的查看的关联
六、 变量
上节课主要讲解了 Scala 语言的概述,重点部分为 Scala 和 Java 以及 jvm 的关系分析图。Scala 并不是一门新语言,它在2003年就发布了,已经有十多年的历史,由于大数据的发展,准确的来讲是 spark 的兴起导致 Scala 语言受到更多的关注,所以现在有很多人关注这门语言。
一、Scala 和 Java 以 jvm 的关系分析图
Scala 和 Java 以 jvm 的关系分析图:
从图中可以发现:
1. Scala 是基于 jvm 来运行的。
2. Scala 会使用到 jdk,它们相互之间有一个引用或者是一个包装的过程,在使用 Scala 的过程中会发现,很多时候表面是使用的 Scala 类,但是底层仍然使用的是 Java 类。
3. Scala 拥有自己特有的语法,有一部分是 Java 语言所没有的。为什么它会拥有特有的语言呢,因为它使用了很多新的语言,更简洁。
二、Windows 下搭建 Scala 开发环境
具体的步骤:
1. 首先把 jak1.8安装
2. 下载对应的 scala 安装文件 scala-2.11.8.zip
3. 解压 这里解压到 d:/program
4. 配置 scala 的环境变量
三、Linux 下搭建 Scala 开发环境
在实际开发中,项目是部署到 linux,因此需要在 Linux 下搭建 scala 的环境。具体的步骤如下:
1. 下载对应的 scala 的安装软件.scala-2.11.8.tgz。
2. 通过远程登录工具,将安装软件上传到对应的 linux 系统(xshell5 xftp5)。
四、Scala 语言输出的三种方式(重点)
1. 基本介绍
(1)字符串通过+号连接(类似 java)。
(2)printf 用法(类似 C 语言)字符串通过%传值。 //在进行格式化输出时 printf 是非常方便和简洁的,如果没有使用 printf,那么编写代码将会非常麻烦。
(3)字符串通过$引用(类似 PHP)。 //引用会在有些源代码中或者是在字符串中用引用的方法来解析一个变量。
//要着重注意第二个和第三个知识点,会经常使用到。
2. 应用案例
这里的3种方法就不再做多讲解,代码如下:
package com.atguigu.chapter01.printdemo
object TestPrint {
def main(args: Array[String]): Unit = {
//使用+
var name : String = “tom”
var sal : Double = 1.2
println(“hello”+ sal + name )
//使用格式化的方式printf
printf(“name=%s sal=%fln”,name, sal)
//使用s引用的方式,输出变量,类似php
println(s”第三种方式 name=$name sal = $sal”)
}
}
注意:如果在 String 在中引用变量,变量中如果含有表达式的话,需要将其使用{}包裹起来,这样才能进行加减乘除的运算,如下:
println(s“第三种方式 name=$name sal = ${sal+1}”)
五、Scala 源码的查看的关联
在使用 scala 过程中,为了搞清楚 scala 底层的机制,需要查看源码,下面看看如果关联和查看 Scala 的源码包。
查看源码,选择要查看的方法或者类,输入 ctr1+ b。
1. 当没有关联源码时,看到如下图像:
2. 关联源码,看演示。
步骤1:将源码包拷贝到 scala/lib 文件夹下.scala-sources-2.12.4。步骤2:关联即可,选中这个文件夹,进行关联,最后,可以看到源码。
讲解:
源代码是需要经常去观察的,在以后参加工作时,有许多公司会对源代码进行二次开发,例如 javae 中的开源项目等,使用开源项目根据应用逻辑稍微改进就能很快就能将其引用出来。例如制造出一个很有规模的网站,并不是重头开始写出代码,因为在网上很多开源的,有些不能满足需求,只需将源代码进行改进即可。
六、变量
变量是程序的基本组成单位。由于这部分讲解的很清晰都能理解,这里就不做详细讲解。只是了解一下有哪些类型,如下。
1. 数据类型
(1)Scala 与 Java 有着相同的数据类型,在 Scala 中数据类型都是对象,也就是说 scala 没有 java 中的原生类型。
(2)Scala 数据类型分为两大类 AnyVal(值类型)和 AnyRef(引用类型),注意:不管是 AnyVal 还是 AnyRef 都是对象。[案例演示 Int , Char]
(3)相对于 java 的类型系统,scala 要复杂些!也正是这复杂多变的类型系统才让面向对象编程和函数式编程完美的融合在了一起。
2. 整数类型
(1)介绍:Scala 的整数类型就是用于存放整数值的,比如12,30,3456等等。
(2)整型的类型:
数据类型 |
描述 |
Byte[1] |
8位有符号补码整数。数值区间为-128 到127 |
Short[2] |
16位有符号补码整数。数值区间为-32768 到32767 |
Int[4] |
32位有符号补码整数。数值区间为 -2147483648 到 2147483647 |
Long[8] |
64位有符号补码整数。数值区间为-9223372036854775808到9223372036854775807 |
3. 数据类型的一览图(重点关注)
上图是之前所学的 java、scala 截取的数据类型图,非常重要,一定要理解记住,否则就会没有印象学不牢固。
从此图中可以得到很多重要的结论:
1. 在 Scala 中一切皆为对象,例如 int 也称为了对象。
1. 值、引用都是 any 的子类。
2. Scala 还有两个特别的底层类:null 与 nothing。
可以发现从此图中都可以清晰的看出来。
以上就是关于上次课的回顾,现在就讲解到这里。


