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

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

Reality Capture控制点修复/合并模型 通过增加控制点/修改对齐设置参数来修复模型被分为两个部分的解决方法 阅读详情

相关推荐

从ST转国产ARM必看:GD32/APM32等5款芯片的SWD下载全攻略(含CH32特殊处理)

本文为从STM32转向国产ARM芯片的开发者提供了详细的SWD下载调试指南。针对GD32F103C8T6、APM32F103C8T6等五款热门国产芯片,详细说明了如何利用已有的ST-Link工具和Keil MDK环境进行程序烧录,并特别介绍了CH32F103芯片所需的独立器件库安装等特殊处理方法,帮助开发者实现平滑迁移,提升开发效率。

weixin_29195615的博客 278

【scala类型系统】结构类型

scala结构类型

檐前潜心学种瓜 321

避开这些坑!STM32H750 IAP升级实战:从Bootloader设计到APP接收的完整避坑指南

本文深入探讨STM32H750 IAP升级的完整避坑指南,从Bootloader设计到APP接收的全流程实践。特别针对QSPI Flash运行限制、SRAM跳转机制和固件校验等核心问题,提供工业级解决方案,帮助开发者提升升级成功率和系统稳定性。

weixin_30471561的博客 275

scala学习

scala的学习总结

qqqahhh的博客 1350

【AI基础学习系列】二十一、一文搞懂GPT

本文系统介绍了GPT(Generative Pre-trained Transformer)模型的核心内容。首先阐述了GPT的本质是基于Transformer的预训练语言模型,其创新在于使用单向Transformer编码器。其次详细解析了GPT架构,包括输入层的Tokenization和Embedding处理、Transformer解码器堆叠的核心组件(自注意力机制、前馈神经网络等)以及预训练和微调两阶段训练过程。接着说明了GPT的工作原理:通过无监督预训练学习语言统计规律,再结合有监督微调适应具体任务。

ASH_GUARDIAN的博客 1687

ANSYS 有限元分析 接触分析

目 录一、前沿二、接触单元类三、接触单元关键选项3.1 CONTA174 KeyOption3.2 TARGE170 KeyOption四、接触分析标准步骤4.1 定义实常数4.2 定义接触和目标单元4.3 创建接触和目标单元五、接触分析实例5.1 MPC5.2 标准接触六、尾声七、参考文献 阿阳的 ANSYS 使用指南,本文仅用于个人学习,除此之外,无其他任何用途。 ANSYS 有限元分析 概述 ANSYS 有限元分析 坐标系/工作平面 ANSYS 有限元分析 几何建模 ANSY

Hulunbuir 4万+

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

如何在OBS中添加实时时间戳:Lua脚本配置教程(附效果展示)

本文详细介绍了如何在OBS中通过Lua脚本配置实时时间戳功能,包括环境准备、脚本获取、安装配置及高级定制。适用于直播和视频录制场景,提供精准回溯和风格自定义,支持多平台适配和性能优化,是专业制作的必备技巧。

day7的博客 1044

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

ADC噪声参数博弈论:为何24位ADC的有效分辨率可能不如16位?

本文深入探讨了ADC噪声参数的核心矛盾,揭示了24位ADC有效分辨率可能不如16位ADC的根本原因。关键在于跳出单纯比较位数的误区,转而关注输入参考噪声这一绝对指标。文章通过分析参考电压对满量程范围和噪声模型的影响,阐述了动态范围与最小可测信号之间的取舍逻辑,为工程师提供了基于系统实际需求的ADC选型与噪声评估框架。

snow3的博客 704

(九)DFI接口时序

文章目录一、DFI Interface 一、DFI Interface   DFI接口是连接DDR Controller与DDR_PHY之间的通用接口,其信号组如下表:       

Mr.翟的博客 1万+

Scala核心-编译解释

Scala核心-编译解释

lucklilili 581

开源的预测气象大模型与数据获取/可视化

「开源气象大模型与数据获取指南」摘要: 当前主流AI气象模型(如ECMWF的AIFS、DeepMind的GraphCast、华为Pangu等)主要基于ERA5/HRES数据训练。开源资源可通过ECMWF OpenData、GitHub仓库及Google Cloud获取,其中AIFS数据采用CCBY-4.0许可可商用,其他模型多有限制性许可。典型应用流程包括:1)通过Python包获取实时预报数据;2)加载预训练权重进行推理;3)使用xarray/cartopy或Zarr进行可视化。训练数据可从CDS下载ER

专注AI大模型,软件混淆,授权 794

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

Scala语言概述与快速入门

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

蓝牙模块HM-10手册

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

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万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

1:scala概述

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

sowhat 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【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、付费专栏及课程。

余额充值