Scala入门(一)概述

一、Scala从入门到精通一一概述 Scala的基本概述why is Scala?Scala的诞生如何学好Scala? why is Scala? Spark—新一代内存级大数据计算框架,是大数据的重要内容。 Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。 Scala 是 Scalable Language 的简写,是一门多范式(范式/编程方式[面向对象/函数式编程])的编程语言 ... 阅读详情

总目录

1.Scala与Java的关系

在这里插入图片描述

2.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中。

3.Scala编译详述

Scala文件经过编译后会形成两个字节码文件,以HelloScala.scala为例,编译之后,会形成HelloScala.class与HelloScala$.class两个字节码文件。
在这里插入图片描述
然而,使用java命令去解释两个字节码文件,都会出现报错,即不可执行。
在这里插入图片描述
在这里插入图片描述
前者是由于没有相应的类,后者是没有可执行的main方法。

HelloScala.scala内容如下:
在这里插入图片描述
对这两个文件进行java的反编译可得以下结果:
在这里插入图片描述

在这里插入图片描述
反编译结果分析:

  • HelloScala
HelloScala..MODULE$.main(paramArrayOfString);
此句应是调用HelloScala$的一个静态属性(对象)
MODULE$的main方法。
  • HelloScala$
static
{
    new ();
}
即表示在静态代码块中new一个本身对象,相当于静态对象
private HelloScala$() { MODULE$ = this;
}
私有的构造方法,逻辑即为将本身在静态代码块中new出的对象赋给MODULE$。

结论:由于scala并未使用类,而是直接使用object,相当于一个对象,故而上述操作即是要生成一个静态对象(HelloScala$的对象,作为全局的静态对象),而此对象又得在类中(总体相当于单例设计模式),实际上,object HelloScala就是MODULE$。对于上述第一个报错内容,其实Predef$的调用即是在HelloScala$的main中。

正确执行语句为:

java -cp %SCALA_HOME%/lib/scala-library.jar; HelloScala

即只要引进相应的包,仍能够执行。

2023华为OD面试手撕真题【最长公共前缀】 阅读详情

相关推荐

DolphinScheduler工作流中ChunJun任务保存失败的深度解析与实战修复

本文深度解析了在DolphinScheduler工作流中创建ChunJun任务时遭遇“parameter invalid”保存失败的普遍问题。其根源在于前端表单的`customConfig`参数默认值与后端校验逻辑不匹配。文章提供了两种实战修复方案:一是修改前端源码并重新编译,二是热更新已部署的JS文件,并对比了其适用场景与风险,帮助用户彻底解决此集成障碍。

weixin_29010003的博客 397

【scala类型系统】结构类型

scala结构类型

檐前潜心学种瓜 321

操作系统笔记【全-408统考】【附思维导图】

操作系统 思维导图 概述 操作系统的概念 管理计算机软件和硬件资源 最基本的系统软件 特征 并发 区分并发并行 共享 互斥共享方式 同时访问方式 虚拟 逻辑上多个。虚拟处理器的分时,空分复用的虚拟存储器 采用多道程序设计 异步 由于资源有限,进程走走停停 可能会导致进程产生与时间有关的错误。访问顺序 目的和功能 1.管理计算机资源 功能 处理机管理、存储器管理、文件管理、设备管理 目标:安全、有效 2.作为用户与计算机硬件系统

wvdon 2364

scala学习

scala的学习总结

qqqahhh的博客 1350

使用 DeepSeek 配合 即梦AI 生成视频的详细教程

访问即梦AI官网,选择“AI作图”功能,将DeepSeek生成的提示词逐条粘贴至输入框,选择适配的模型(如“通用XL Pro”)和参数(如画幅比例、风格强度)1113。“我要制作一个关于普洱茶文化的宣传视频,请设计一个30秒的脚本,包含时间轴、画面描述、文案和分镜提示词,以表格形式输出。:云南古茶树群,清晨薄雾,金色晨光,露珠特写,国风山水画质感,16:9画幅,使用Nikon D850参数模拟513。:结合DeepSeek生成的知识点脚本与即梦AI的插画风格,制作科普动画211。

weixin_48995695的博客 3万+

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 382

scala spark 手动构建DataFrame复杂类型,arrayType,StructType

scala spark 手动构建DataFrame复杂类型,arrayType,StructType package biReportJob.zt import org.apache.log4j.{Level, Logger} import org.apache.spark.rdd.RDD import org.apache.spark.sql.functions._ import org.a...

偏执狂才能生存!热忱比专业知识更重要......... 7538

SpyGlass Lint脚本实战:如何用TCL自动化RTL代码检查(附完整配置模板)

本文详细介绍了如何利用TCL脚本实现SpyGlass Lint工具的自动化RTL代码检查。通过构建模块化、工程化的脚本框架,文章提供了从环境搭建、核心配置、规则定制到豁免管理的完整实战指南,并附有可复用的配置模板,旨在帮助IC设计工程师构建高效、一致的代码质量检查流水线。

weixin_29204205的博客 134

scala spark 创建DataFrame的五种方式

scala spark 创建DataFrame的多种方式 1. 通过RDD[Row]和StructType创建 import org.apache.log4j.{Level, Logger} import org.apache.spark.rdd.RDD import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType} import org.apache.spark.sql.{DataFrame,

helloxiaozhe的博客 7510

海鸥派OpenEuler开发板实战:从烧写到SSH连接的完整指南

本文提供海鸥派OpenEuler开发板从开箱到SSH远程连接的完整实战指南。详细介绍了基于海思SD3403/SS928芯片的算力开发板系统烧写、存储扩容、网络配置等关键步骤,帮助开发者快速上手这款AI边缘计算设备,并实现高效的远程开发与管理。

ruby5的博客 1121

(第七章)FAST开发方法

摘要: FAST是一种轻量级、业务驱动的系统分析与开发框架,适用于中小型项目,强调快速交付和组件化开发。其核心包括8个阶段:范围定义、问题分析、需求分析、逻辑设计、决策分析、物理设计、构造测试和安装发布。特点为结构化、用户参与、迭代渐进,适合需求明确且需快速交付的项目。与RUP(重量级)、敏捷(极轻量)相比,FAST更侧重业务分析和模块化开发。软考中可通过口诀“范围问题求逻辑,决策物理构发布”记忆阶段,并掌握五大开发方法(瀑布、原型、FAST、RUP、敏捷)的核心区别及适用场景。

echo的博客 915

Scala核心-编译解释

Scala核心-编译解释

lucklilili 581

基于Simulink的伺服电机位置闭环控制仿真

本文带你从零构建了伺服电机位置闭环控制系统​ 的完整Simulink仿真模型,实现了:✅ 搭建PMSM伺服电机、逆变器、机械臂负载的主电路与编码器反馈模型;✅ 用MATLAB Function实现三环控制(位置环PID、坐标变换、电流环PI);✅ 验证阶跃定位(稳态误差0.002°、响应0.08s)与正弦跟踪(误差0.008°)的高性能;✅ 对比开环控制,明确位置闭环在精度、响应、抗扰上的优势;✅ 理解“三环嵌套+反馈校正”的核心思想(精密定位的工程实现)。核心收获。

amy_mhd的博客 173

Scala核心编程(一)Scala语言概述与快速入门

Scala语言概述与快速入门

记录学习点滴,分享实战干货,一起奔赴技术之路 469

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Scala(一):概述

1.学习Scala的原因 1.1 why is Scala语言? 1) Spark—新一代内存级大数据计算框架,是大数据的重要内容。 2) Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握 Scala这门语言。 3) Scala 是 Scalable Language 的简写,是一门多范式(范式/编程方式[面向对象/函 数式编程])的编程语言 4) 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计Scala 5) Spark的兴起,带动

weixin_44800710的博客 2万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

1:scala概述

Scala 基础摘要, Scala 跟JVM的关系

sowhat 1万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Scala】(一)Scala 概述及安装环境部署

文章目录一、why is Scala语言?二、Scala语言的特点三、Windows下搭建Scala开发环境四、配置 IDEA五、Scala语言快速开发入门 一、why is Scala语言? Spark—新一代内存级大数据计算框架,是大数据的重要内容。 Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。 Scala 是 Scalable Langua...

云祁QI 1682

(一)Scala语言——入门

目录一、Scala 入门1. 概述1.1 为什么学习Scala2. Scala 发展历史3. Scala 和 Java 关系4. Scala 语言特点Scala 环境搭建4. HelloWorld 案例4.1 IDEA环境创建4.2 Scala程序反编译4.3 开发注意事项5. 关联Scala源码6. 官方编程指南二、变量和数据类型1. 注释3. 变量4. 字符串输出5. 键盘输入 一、Scala...

fseast的博客 4735

Scala编程快速入门系列(一)

目    录 一、Scala概述 二、Scala数据类型 三、Scala函数 四、Scala集合 五、Scala伴生对象 六、Scala trait 七、Actor 八、隐式转换与隐式参数 九、Scala JDBC 由于整理的篇幅较长,所以文章计划分三次发布。 一、Scala概述 1. Scala简介   Scala是一种针对JVM将函数和面向对象技术组合在一起的编程...

Huidoo_Yang 4750

Scala入门01-概述及基础语法

文章目录Scala入门01-概述及基础语法1.Scala概述(1)Scala是面向对象语言(2)Scala是函数式编程语言(3)Scala是静态类型的(4)Scala运行在JVM上(5)Scala可以执行Java代码(6)Scala可以做并发和同步处理2.Scala基本语法2.1第一个Scala程序Scala编程中的基本语法和编码约定2.2Scala标识符2.3Scala关键字2.4Scala注释...

qq_43502858的博客 675

手把手带你学习Scala(一)-Scala概述、环境安装、插件安装以及案例讲解

从英文的角度来讲,Scala并不是一个单词,而是两个单词的缩写,表示可伸缩语言的意思。从计算机的角度来讲,Scala是一门完整的软件编程语言,那么连在一起就表示Scala是一门可伸缩的软件编程语言。之所以说它是可伸缩,是因为这门语言体现了面向对象,函数式编程等多种不同的语言范式,且融合了不同语言新的特性。Scala编程语言是由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计并开发的。...

aikeaidecxy的博客 697

Scala开发入门教程

Scala语言和其它语言比如Java相比,算是一个比较复杂的语言,它是一个面向对象和面向函数的统一体,使用起来非常灵活,因此也不容易掌握,前面的58篇文章仅仅是Scala的一个入门教程,有了这些基础知识,你就可以开始编写Scala应用,学习一种语言最好的方法是通过实践来学习。为方便起见,下面列出这些文章,后面我们就分专题进一步介绍Scala编程。Scala开发教程(1): 开始神奇的Scala编程

引路蜂移动软件 8万+

Scala 入门

Scala 入门 1、概述 1.1、为什么学习 Scala 1)Spark—新一代内存级大数据计算框架,是大数据的重要内容。 2)Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。 3)Spark的兴起,带动Scala语言的发展! ● Scala一一Java++ ➢Scala基于JVM,和Java完全兼容,同样具有跨平台、可移植性好、方便的垃圾回收等特性 ➢Scala 比Java更加面向对象 ➢Scala 是一门函数式编程语言 ● Scala更适合大数据的处理

weixin_44966780的博客 1951

scala快速入门

1) JDK1.82) Scala环境变量配置Path,能够快速找到scala相关指令3) 测试cmd输入scala即可1.采用var|val关键字声明2.变量名称应该放置在变量类型之前3.var | val 变量名 :变量类型 = 变量值4.如果根据变量值可以推断出变量类型,那么变量类型就可以省略1.java中的方法在scala中就是函数,只不过方法是相对类的概念,函数在作用域内有效,方法受到类的约束2.函数就是功能的封装不属于类的,所以函数名不能重复,没有重载重写概念。

j218255的博客 1483

一 Scala入门+环境搭建

Scala入门第1章 Scala入门1. Scala简介1.1 概述1.2 Scala之父1.3 语言特点2.Scala程序和Java程序对比2.1 程序的执行流程对比2.2 Scala和Java及JVM关系图3.Scala 环境搭建3.1 概述3.2 安装JDK3.3 安装Scala SDK3.4 安装IDEA scala插件3.4.1 下载指定版本IDEA scala插件.3.4.2 IDEA配置scala插件3.4.3 重新启动IDEA4. Scala解释器4.1 概述4.2 启动scala解释器4.

TiAmonal的博客 411

Scala学习(一)概述和环境搭建

目录概述Scala VS JavaScala和JAVA以及JVM的关系图语言特点搭建环境WindowsLinuxIdea中Scala插件安装第一个helloworld程序对helloword程序进行解析总结 概述 Scala VS Java Scala是基于JVM和Java完全兼容,同样具有跨平台性,可移植性好,方便垃圾回收等特性 Scala比Java更加面向对象 Scala是一门函数式编程语言 Scala相比于java对集合类型的数据处理有非常好的支持 Spark底层是使用Spark编写的 Scala

qq_41816516的博客 478
上一篇: 解决 E: 仓库 “https://download.docker.com/linux ubuntu Release” 没有 Release 文件。N: 无法安全地用该源进行更新,所以默认禁用该源。
下一篇: Scala入门(二)变量与数据类型
Silver  Star
Silver Star 新星创作者: 大数据技术领域 新星创作者: 大数据技术领域
博客等级 码龄7年 1万+粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Silver Star

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值