1 / 5
文档名称:

scala课堂笔记.pdf

格式:pdf   大小:305KB   页数:5页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

scala课堂笔记.pdf

上传人:lajie 2023/3/28 文件大小:305 KB

下载得到文件列表

scala课堂笔记.pdf

文档介绍

文档介绍:该【scala课堂笔记 】是由【lajie】上传分享,文档一共【5】页,该文档可以免费在线阅读,需要了解更多关于【scala课堂笔记 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。scala课程笔记
1)2天时间scala语言
2)6天时间spark,core,RDD,streaming,sql,mlib
java缺点:
1)操作CPUcore,java不能
2)java语言动态变量,Personp(栈区)=newPerson();(对象实体,堆区)变量是可以修
改的。静态设计,所有的“变量”不允许修改。final常量,只能赋值一次。hadoop中
间结果
3)多线程,难操作,对于初级程序员不敢触碰,企业中也不敢采用你的代码
4)并发
scala:
1)可以直接操作core,spark资源把每个物理机core作为最小单元
2)hadoop中间计算结果值落地,需要调用这个中间结果集,还要从磁盘读出。scalaval常
量,每一步操作都会产生新的常量,中间结果在内存中,下一步计算要利用这个中间结
果,直接从内存中调用。
3)(xxx)。加了这个partition函数它就自动形成分布式而且是高并发,会自动调用
所有可以使用资源。
分布式高并发,操作单机和操作分布式环境代码一样
Java和scala有没有关系?
.java源文件=>=>JVM中执行
.scala源文件=>=>JVM中执行
JVM开发者就是scala的开发者
衍生出来很多好处:
1)scala能不能调用java的代码,完全支持import
2)scala不是自己的相关东西,而是利用JVM执行,野心。java的程序员可以无缝衔接
业界说法:scala是java的高级部分,scala是下一代java。
,抄袭scala
为什么要学****scala?
1)spark是scala开发
2)kafka也是用scala开发的
scala运行环境
1)window环境scala-,换默认路径,命令窗口(scala支持交互式)
直接看到每一步结果(简单测试练****br/>2)IDE,ScalaIDEbuildofEclipseSDK
可以提升错误(比较复杂代码,在spark上执行job)
需求:
helloworld
java:(“helloworld”);
scala:println(“helloworld”)[;]//可以有分号,也可以没有分号,如果一行有多条代码
就必须加,只是一行可以忽略
数组
java:Arraya=newArray(1,2,3,4,5);//定义是一个变量
scala:vala=Array(1,2,3,4,5)//定义是一个常量,可以忽略new关键字
语法:
publicvoidsaveItem(Itemitem){}
scala:saveItem(item:Item):Unit={}
publicList<Item>findItemList(Itemitem){}
scala:findItemList(item:Item):List[Item]={}
java面向对象,万物皆对象,对象属性,对象方法
publicstaticvoidmain(String[]args){
("HelloWorld!");
}
scala完全(纯)面向对象,万物皆函数,对象,对象属性,对象方法,函数,变量,常量
方法
defmain(args:Array[String]):Unit={
println("helloworld")
vala=Array(1,2,3,4,5)
for(x<-a){
println(x)
}
}
var变量和val常量
1)在java声明变量声明最多的,很少使用常量
2)在scala声明常量声明最多多,几乎不用变量
scala会自动推演变量当前值
vala=“123”;
valb=123;//常量,只能一次赋值,和java中的final类似
java中,Array变量
scala中,Array常量,ArrayBuffer变量,必须import
List常量,ListBuffer变量,必须import
java中声明一个final类型常量
1)立即设置初始值(立刻分配内存空间)
2)不设置初始值,后期再赋值(但第一次调用时分配内存空间)
单例设计模式
饿汉式(立即分配内存空间)
懒汉式(第一调用时分配内存空间)
Option(Some,None,默认值getOrElse)
objectApp{
defmain(args:Array[String]):Unit={
println(div(10,2).getOrElse(0))//Some(5),返回就是5
println(div(10,0).getOrElse(0))//None,返回特殊值0
}
//定义整除
defdiv(x:Int,y:Int):Option[Int]={
if(y==0)NoneelseSome(x/y)
}
}
在java中创建对象class
在scala中创建对象Object,class
Object单例,全局唯一
static+final
privatestaticfinalObjectMapperMAPPER=newObjectMapper();//
匿名函数
((n:Int)=>(n%2==0))
方法:defadd={}
函数:(n:Int)=>(n%2==0),没有名称,匿名函数
函数式编程超越面向对象编程,核心
partition(fn)
把一个函数作为参数传递
只有特殊一类函数才可以作为方法参数,高级函数
scala类
1)Object单一实例staticfinal类,单例模式(推荐,main入口执行方法)
2)Class和java的类一样
3)CaseClass样例类,直接序列化,toString,hashCode。。。。很多方法直接实现(网络传
输)
4)Trait接口和抽象类(抽象类抽象接口)
java面向对象编程OP/OOP
scala函数式编程FP+面向对象编程OP
Java中
Array在内存中是连续存储,查询速度快
List在内存中链式存储,不是连续空间,插入元素快
Tuple
1)类似map,但是它的值可以很多,每个的值类型可以不同
2)元素个数是有限制的,22个
3)SparkSQL,利用Tuple元祖将数据库的数据转换成DataFrame(Oracle数据导入到spark
中)
多线程par方法
1)如果在单机上,利用多线程来模拟
2)如果在集群环境,操作的CPUcore为node,把任务平均分配给各个node
3)开发单机版的和集群版的程序代码基本上是一样(注意开发的细节几乎一样)

最近更新

队形队列比赛方案 9页

农村初中生化学学习自我效能感调查研究的开题.. 2页

贯彻上级方案 6页

负载均衡方案 9页

内蒙古克什克腾旗旅游可持续发展状态评价研究.. 2页

计量标准履历书(样版) 13页

高温耐腐蚀材料研究 31页

公立医院预算管理信息化体系与实施路径的研究.. 2页

全速率双路径协作中继传输方法的研究的开题报.. 2页

纳米碳材料在电子器件中的应用 31页

钛板新合金开发 31页

先秦道家教育思想对当代学校音乐教育的启示的.. 2页

健脾补肾法治疗绝经过渡期卵巢功能下降的临床.. 2页

信息系统在工程项目管理中的应用——以广州四.. 2页

便携检测设备界面的用户体验研究中期报告 2页

供应商的选择和评价研究——以河南新大新材料.. 2页

体外法研究油酸和亚油酸对瘤胃发酵及微生态的.. 2页

给水管网施工方案 7页

《动物运动会作业设计方案-2023-2024学年科学.. 3页

初中优秀满分高分范文 15页

端午节男装活动方案 8页

企业现金流运行状态诊断与相机管理研究中期报.. 2页

初中三角形相似证明练习题 (2) 4页

任意域上Bexout矩阵束的研究的开题报告 2页

从转录组和蛋白组水平研究大鼠再生肝的细胞增.. 2页

电视栏目策划方案范文 7页

人皮肤来源前体细胞体外衰老的特征及其三维培.. 2页

电气工程施工方案 7页

2024年北京市东城区初三数学一模试题及答案 11页

2024年劳务员之劳务员基础知识题库含完整答案.. 92页