温故知新|学习笔记

简介: 快速学习温故知新。

开发者学堂课程【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 的关系分析图:

image.png

从图中可以发现:

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. 当没关联源码时,看到如下图像

image.png

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 的整数类型就是用于存放整数值的,比如12303456等等

(2)整型的类型:

数据类型

描述

Byte[1]

8位有符号补码整数。数值区间为-128 到127

Short[2]

16位有符号补码整数。数值区间为-32768 到32767

Int[4]

32位有符号补码整数。数值区间为 -2147483648 到 2147483647

Long[8]

64位有符号补码整数。数值区间为-92233720368547758089223372036854775807

3. 数据类型的一览图(重点关注)

 image.png

上图是之前所学的 java、scala 截取的数据类型图,非常重要,一定要理解记住,否则就会没有印象学不牢固。

从此图中可以得到很多重要的结论:

1. 在 Scala 中一切皆为对象,例如 int 也称为了对象。

1. 值、引用都是 any 的子类。

2. Scala 还有两个特别的底层类:null 与 nothing。

可以发现从此图中都可以清晰的看出来。

以上就是关于上次课的回顾,现在就讲解到这里。

相关文章
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1122 152
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1793 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
719 152
|
7天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
493 5
|
12天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
671 14