当前位置: 首页 > news >正文

Scala 入门(第一章Scala 环境搭建、插件的安装)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

第 1 章 Scala 入门

  • 1.1 概述
    • 1.1.1 为什么学习 Scala
    • 1.1.2 Scala 发展历史
    • 1.1.3 Scala 和 Java 关系
    • 1.1.4 Scala 语言特点
  • 1.2 Scala 环境搭建
  • 1.3 Scala 插件安装
  • 1.4 HelloWorld 案例
    • 1.4.1 创建 IDEA 项目工程


1.1 概述

1.1.1 为什么学习 Scala

1.Spark—新一代内存级大数据计算框架,是大数据的重要内容。
2.Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
3. Spark的兴起,带动Scala语言的发展!

1.1.2 Scala 发展历史

联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。

马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala)。
Pizza和Scala极大地推动了Java编程语言的发展。

  • JDK5.0 的泛型、增 强for循 环、自动类型转换等,都是从Pizza引入的新特性。
  • JDK8.0 的类型推断、Lambda表达式就是从Scala引入的特性。

JDK5.0和JDK8.0的编辑器就是马丁·奥德斯基写的,因此马丁·奥德斯基一个人的战斗力抵得上一个Java开发团队。

1.1.3 Scala 和 Java 关系

一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈

Scala和Java及JVM关系图
在这里插入图片描述

1.1.4 Scala 语言特点

Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。

  • 1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
  • 2)Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
  • 3)Scala单作为一门语言来看,非常的简洁高效。
  • 4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

1.2 Scala 环境搭建

1)安装步骤
(1)首先确保 JDK1.8 安装成功
(2)下载对应的 Scala 安装文件 scala-2.12.11.zip
(3)解压 scala-2.12.11.zip,我这里解压到 D:\Tools
(4)配置 Scala 的环境变量
在这里插入图片描述
在这里插入图片描述
注意 1:解压路径不能有任何中文路径,最好不要有空格。
注意 2:环境变量要大写 SCALA_HOME
2)测试
需求:计算两数 a 和 b 的和。
(1)在键盘上同时按 win+r 键,并在运行窗口输入 cmd 命令
在这里插入图片描述
(2)输入 Scala 并按回车键,启动 Scala 环境。然后定义两个变量,并计算求和。
在这里插入图片描述

1.3 Scala 插件安装

默认情况下 IDEA 不支持 Scala 的开发,需要安装 Scala 插件。
1)插件离线安装步骤

  • (1)建议将该插件 scala-intellij-bin-2017.2.6.zip 文件,放到 Scala 的安装目录
    D:\Tools\scala-2.12.11 下,方便管理。
  • (2)打开 IDEA,在左上角找到 File->在下拉菜单中点击 Setting… ->点击 Plugins->点击 右 下 角 Install plugin from disk… , 找 到 插 件 存 储 路 径
    D:\Tools\scala-2.12.11\scala-intellij-bin-2017.2.6.zip,最后点击 ok。
    在这里插入图片描述

1.4 HelloWorld 案例

1.4.1 创建 IDEA 项目工程

1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…
在这里插入图片描述
2)创建一个 Maven 工程,并点击 next
在这里插入图片描述
3)GroupId 输入 com.atguigu->ArtifactId 输入 scala->点击 next->点击 Finish
注意:工程存储路径一定不要有中文和空格。
4)默认下,Maven 不支持 Scala 的开发,需要引入 Scala 框架。
在 scala0513 项目上,点击右键-> Add Framework Support… ->选择 Scala->点击 OK
在这里插入图片描述
注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然 后工具就会自动识别,就会显示 user libary。
5)创建项目的源文件目录

  • 右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。
  • 右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。
    在这里插入图片描述
    6)在 scala 包下,创建包 com.atguigu.chapter01 包名和 Hello 类名,
    右键点击 scala 目录->New->Package->输入 com.atguigu.chapter01->点击 OK。右键点击 com.atguigu.chapter01->New->Scala Class->Kind 项选择 Object->Name 项输入Hello。
    在这里插入图片描述
    7)编写输出 Hello Scala 案例
    在类中中输入 main,然后回车可以快速生成 main 方法;
    在 main 方法中输入 println(“hello scala”)
    在这里插入图片描述

相关文章:

Scala 入门(第一章Scala 环境搭建、插件的安装)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 第 1 章 Scala 入门1.1 概述1.1.1 为什么学习 Scala1.1.2 Scala 发展历史1.1.3 Scala 和 Java 关系1.1.4 Scala 语言特点1.2 Scala 环境搭建1.3 Scala 插件安装1.4 HelloWorl…...

math@多项式@求和式乘法@代数学基本定理

文章目录多项式求和式乘法应用代数学基本定理相关证明高次方程其他关于多项式的参考多项式求和式乘法 S∏j1(∑k1ajk)⁣ ⁣ ⁣j∏j1m(∑k1njajk)⁣ ⁣ ⁣jS\prod_{j1}\left(\sum\limits_{k1}a_{jk}\right)_{\!\!\!j} \\\prod_{j1}^{m}\left(\sum\limits_{k1}^{n_j}a_{jk}\r…...

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限

Kafka系列之:基于SCRAM和Ranger机制完成动态新增kafka读写账号、赋予账号对指定Topic的读写权限 一、需求背景二、添加写用户三、查看用户是否添加到zookeeper中四、查看用户五、赋予用户topic写权限六、生产者配置文件七、ranger给用户权限八、往Topic写数据九、删除添加的用…...

第五十三章 DFS进阶(一)——剪枝优化

第五十四章 DFS进阶(一)——剪枝优化一、什么是剪枝?二、剪枝优化的策略1、优化搜索顺序2、排除等效冗余3、可行性剪枝4、最优性剪枝5、记忆化搜索三、例题1、AcWing 165. 小猫爬山(DFS 剪枝优化)2、AcWing 167. 木棒…...

Java字节码深度知多少?

文章目录1、字节码结构1.1、基本结构1.2、实际观测2、内存表示3、方法调用指令4、invokedynamicEND结语Java真的是长盛不衰,拥有顽强的生命力。其中,字节码机制功不可没。字节码,就像是 Linux 的 ELF。有了它,JVM直接摇身一变&…...

【C++】智能指针(万字详解)

🌈欢迎来到C专栏~~智能指针 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&…...

使用docker配置mysql主从复制

1.新建主服务器容器实例: docker run -p 3307:3306 --name mysql \ -v /docker/mysql/data:/var/lib/mysql \ -v /docker/mysql/conf:/etc/mysql/conf \ -v /docker/mysql/log:/var/log/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:5.7 设置容器卷之后&#xf…...

v3 异步组件及分包使用

1 app.vue <template> <!-- vue3异步组件必须使用suspense --> <Suspense> <template #default> <!-- 异步组件 --> <SyncVue></SyncVue> </template> <template v-slot:fallback> <!-- 优先显示骨架屏 --> <…...

实用调试技巧【上篇】

&#x1f534;本文章是在 Visual Studio 2022&#xff08;VS2022&#xff09;编译环境下进行操作讲解 文章目录&#x1f973;1. 什么是bug&#xff1f;&#x1f973;2.调试有多重要&#xff1f;2.1. 我们是如何写代码的&#xff1f;2.2.调试是什么&#xff1f;2.3.调试的基本步…...

JavaScript 教程

手册简介JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言&#xff0c;它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序员&#xff0c;但是 JavaScript 却拥有非常简单的语法。几…...

在SpringBoot里面使用原生的Servlet

在SpringBoot里面使用Servlet 首先在主程序中添加注解主程序添加ServletComponentScan // 加上这个注解之后就可以使用原生的组件了 HttpServlet 继承HttpServlet 重写方法 添加WebServlet 第一种方式使用注解 WebServlet(value "/helsk") public class HelloSe…...

商标被驳回,先别慌!挽回商标有办法

商标注册是一个漫长的等待过程&#xff0c;提交了注册申请之后不代表就能得心应手。商标局在接收到申请后&#xff0c;便会开始各阶段审查&#xff0c;面对不符合条件的商标会予以商标驳回。商标局基于什么原因而驳回注册申请呢?驳回后还有必要进行商标驳回复审吗?今天心周企…...

VMware安装Linux虚拟机后忘记root密码处理方法

OS版本&#xff1a;Red Hat 7.7 问题说明&#xff1a; 之前用VMWare安装了一台Linux虚机&#xff0c;由于长期没使用&#xff0c;导致忘记了root密码。所以需要修改root密码。 Root密码修改 现将修改root密码的操作步骤记录如下。 1.启动虚拟机&#xff0c;出现启动倒计时…...

Centos安装OpenResty

文章目录一. OpenResty是什么二. OpenResty的安装1. 安装开发库2. 安装OpenResty仓库3. 安装OpenResty4. 安装opm工具5. 目录结构6. 配置nginx的环境变量7. 启动和运行8. 配置文件修改三. 小案例1. 案例说明2. OpenResty监听请求3. 编写业务代码4. 获取请求参数一. OpenResty是…...

阿里云部署SpringBoot项目

目录 步骤1&#xff1a;购买服务器(新用户免费试用一个月) 步骤2&#xff1a;查看服务器相关信息 ​编辑 步骤3&#xff1a;设置安全组 步骤4&#xff1a;远程连接 步骤5&#xff1a;使用FinalShell连接阿里云服务器 步骤6&#xff1a;阿里云服务器上安装JDK ​编辑 步骤7…...

EdgeCOM嵌入式边缘计算机的参数配置

EdgeCOM嵌入式边缘计算机的参数配置&#xff1a; 下面以 eth0 为例进行命令说明。 在 Linux 系统下&#xff0c;使用 ifconfig 命令可以显示或配置网络设备&#xff0c;使用 ethtool 查询及 设置网卡参数。 设置 IP 地址&#xff0c;查看当前网卡详情&#xff1a; rootfl-imx6u…...

字节软件测试岗:惨不忍睹的三面,幸好做足了准备,月薪15k,拿到offer

我今年25岁&#xff0c;专业是电子信息工程本科&#xff0c;19年年末的时候去面试&#xff0c;统一投了测试的岗位&#xff0c;软件硬件都有&#xff0c;那时候面试的两家公司都是做培训的&#xff0c;当初没啥钱&#xff0c;他们以面试为谎言再推荐去培训这点让我特别难受。 …...

【编程基础之Python】5、安装Python第三方模块

【编程基础之Python】5、安装Python第三方模块安装Python第三方模块为什么需要安装第三方模块Python包管理器介绍pippip installpython -m pip installcondaconda install在Windows环境中安装Python模块安装numpy安装pandas安装matplotlib在Linux环境中安装Python模块在PyCharm…...

JavaScript 教程导读

JavaScript 是 Web 的编程语言。所有现代的 HTML 页面都使用 JavaScript&#xff0c;可以用于改进设计、验证表单、检测浏览器、创建cookies等。JavaScript 非常容易学。本教程将教你学习从初级到高级JavaScript知识。JavaScript 在线实例本教程包含了大量的 JavaScript 实例&a…...

BigDecimal

文章目录1. BigDecimal 的舍入模式&#xff08;RoundingMode&#xff09;1.1 ROUND_UP1.2 ROUND_DOWN1.3 ROUND_HALF_UP1.4 ROUND_HALF_DOWN1.5 ROUND_CEILING1.6 ROUND_FLOOR1.7 ROUND_HALF_EVEN1.8 ROUND_UNNECESSARY2. BigDecimal的运算——加减乘除2.1 加法 add()函数 减法…...

Python+Spire.Doc实战:5分钟搞定Word邮件合并批量生成邀请函(附完整代码)

PythonSpire.Doc实战&#xff1a;5分钟搞定Word邮件合并批量生成邀请函&#xff08;附完整代码&#xff09; 行政和市场人员经常面临批量发送个性化邀请函的挑战。传统手动修改不仅耗时费力&#xff0c;还容易出错。今天我们将用Python和Spire.Doc库&#xff0c;实现高效精准的…...

企业必看:致远OA密码重置漏洞修复指南(附官方补丁下载与安装教程)

致远OA密码重置漏洞全面修复指南&#xff1a;从补丁部署到安全加固 1. 漏洞背景与影响范围 近期致远OA协同办公平台曝出的密码重置漏洞&#xff0c;已成为企业IT安全团队亟需应对的高危风险。该漏洞允许攻击者在仅获取用户名的情况下&#xff0c;通过构造特定HTTP请求绕过短信…...

从美颜到自动驾驶:聊聊图像处理中的‘滤波’与‘采样’到底在干嘛?

从美颜到自动驾驶&#xff1a;聊聊图像处理中的‘滤波’与‘采样’到底在干嘛&#xff1f; 当你用手机自拍时轻轻滑动"磨皮"按钮&#xff0c;或是观看短视频平台自动修复的老电影&#xff0c;又或是坐在自动驾驶汽车里看它精准识别车道线——这些场景背后都藏着一套共…...

实战详解:从零构建 LangChain 智能 Agent,让大模型真正“动起来”!

文章目录&#x1f4d6; 一、为什么我们需要 Agent&#xff1f;&#x1f504; Agent 核心工作流图解&#x1f6e0;️ 二、环境准备与核心组件核心组件介绍&#x1f4bb; 三、实战代码&#xff1a;构建“全能数据分析师”Agent1. 定义工具 (Tools)2. 构建 Agent 逻辑 (ReAct 模式…...

大数据核心知识全解(零基础到Hadoop专家路线)【20260324】001篇

文章目录 大数据核心知识全解(零基础到Hadoop专家路线) 一、为什么会出现大数据?(本质原因) 1. 数据来源爆炸 2. 传统技术扛不住 3. 需求倒逼 二、CNCF 是什么?(云原生核心组织) 它和大数据的关系 三、为什么 Hadoop 会流行?(3个核心原因) 1. 它解决了当时最痛的问题…...

低成本搭建QQ机器人:OpenClaw+nanobot消息中转方案

低成本搭建QQ机器人&#xff1a;OpenClawnanobot消息中转方案 1. 为什么选择OpenClawnanobot方案 去年我在管理一个小型技术社群时&#xff0c;经常需要处理重复性的问答和通知发布。尝试过多个机器人框架后&#xff0c;最终选择了OpenClawnanobot的组合方案。这个方案最吸引…...

摆脱论文困扰!!2026最新AI论文写作软件测评与推荐

2026年真正好用的AI论文写作软件&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...

GTE文本向量模型部署全攻略:从零到一搭建企业级文本处理服务

GTE文本向量模型部署全攻略&#xff1a;从零到一搭建企业级文本处理服务 1. 项目介绍与核心价值 如果你正在寻找一个能一站式解决中文文本分析难题的工具&#xff0c;那么GTE文本向量模型可能就是你的答案。想象一下&#xff0c;一个模型就能帮你识别文档里的关键人物、地点&…...

三步解锁Degrees of Lewdity中文本地化版本无缝体验:完整指南

三步解锁Degrees of Lewdity中文本地化版本无缝体验&#xff1a;完整指南 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localizati…...

为什么头部金融科技公司已在2026 Q1全面切换Python AOT?——基于百万行代码仓库的构建耗时、镜像体积、安全扫描通过率真实数据复盘

第一章&#xff1a;Python 原生 AOT 编译方案 2026 对比评测报告Python 社区在 2025 年底迎来关键演进&#xff1a;CPython 官方正式将原生 AOT&#xff08;Ahead-of-Time&#xff09;编译能力纳入 3.14 开发主线&#xff0c;并以“Project Graviton”为代号推动落地。2026 年初…...