Scala

object HelloWorld {def main(args: Array[String]): Unit = {var res = for (i <- 1 to 10 if i % 2 == 0) yield { //生成器,变量每一次都会被初始化breakable{if(i>=8) breakprintln(i)}i}print(res)
}
}

数据结构:

数组:

Array:可变,元素相同类型

var arr =new Array[Int](5)
var arr2 = Array("GigData","Spark")

元组:

可以包含不同的类型。

var tuple =("BigData",1,0.1)

scala> tuple._1
res0: String = BigData

List:

相同类型的不可变序列,scala.collection.immutable包

var strList = List("Hadoop","BigData","Spark")
val mutableList =ListBuffer(10,20,30)mutableList +=40 //在尾部添加40println(mutableList)mutableList.insert(0,5)println(mutableList)mutableList.remove(0)println(mutableList)

ListBuffer(10, 20, 30, 40)
ListBuffer(5, 10, 20, 30, 40)
ListBuffer(10, 20, 30, 40)

Range

不可变,带索引的一个等差序列

val v =new Range(1,10,2)//第一个是起始,第二个是终止,第三个是步长for( i <- v){println(i)}
}

集合:

Set:不重复元素的容器

var myset =Set("Hadoop","Spark")
myset+="Scala"

映射Map

var myMap = Map("1" -> "laowang", "2" -> "zhanghua")myMap("3") = "wahaha"myMap +="4"->"hehe"
println(myMap)

Map(2 -> zhanghua, 1 -> laowang, 4 -> hehe, 3 -> wahaha)

迭代器

  val iter =Iterator("Hadoop","Spark","Scala")while (iter.hasNext){println(iter.next())}

可见性

默认设为公有。有类似getter和setter的方法,是value和value_=

def value = privateValue
def value_=(newValue : Int) {if(newValue > 0) privateValue =newValue
}myCounter.value_=(3)

方法的定义方式

  • 不能用val或var来定义,所有的方法都是不可变的。无参方法可以省略括号,但是调用 时也要省略括号。如果方法只有一个参数,可以省略‘.’
  • 如果返回的结果类型可以从最后的表达式中推导出,方法定义中可以省略结果类型。如果方法体只有一条语句,还可以省略大括号。

构造器

主构造器:所以位于类方法之外的语句都将在构造过程中被执行。可以向定义方法参数一样,在类名之后用圆括号列出主构造器的参数列表。

class Counter(name:String){}

辅助构造器::使用this来定义,this的返回类型是Unit。每个辅助构造器的第一个表达式必须是调用一个此前已经定义的辅助构造器或主构造器,调用的形式为this(参数列表) ,这意味着每一个辅助构造器最终都会调用主构造器。

class Counter(name:String){private  var password =''
private var username =name
def this(password:String){this()//调用主构造器
this.password =password
}
}

与方法中的参数不同,主构造器中的参数可以使用val或var,scala内部将自动为这些参数创建私有字段
如果没使用var和val的话,构造器参数在构造器退出后将被丢弃

对象

单例对象

用object来定义单例对象,单例对象的性质类似于java中的静态成员。
单例对象分两种:

  • 伴生对象:当单例对象和它的同名类一起出现的时候
  • 孤立对象:没有同名类

伴生对象和它的伴生类必须在同一个文件中,他们之间可以相互访问对方的私有成员。

apply方法

当用括号给实例或单例对象传参时,对应的实例或单例对象会在找符合传入参数的apply方法,并调用该apply方法。

object TestClass{def apply(name:String) =new TestClass(name)
}
class TestClass(name:String){var username =name}
obiect MainClass{def main(args:Array[String]){val testclass = TestClass("laowang")
}
}

unapply方法

apply的反向操作

继承

抽象类:如果一个类包含没有实现的成员,则必须要abstract进行修饰,定义为抽象类。
继承:只能支持单一继承,使用extends表示继承关系。

  • 重载父类的抽象成员:重载父类的抽象成员时,override是可选的,而重载父类的非抽象成员时,override是必选的。
  • 只能重载val类型的字段,而不能重载var类型的字段。因为var类型本身就是可变的,所以,可以直接修改它的值,无需重载。

spark 期末复习相关推荐

  1. Spark 期末复习--RDD总结(包含经典练习题)

    大家好!我是文艺工科女茶哩,本文篇幅比较长,避免迷路,建议收藏再"食用". Spark 期末复习--RDD总结 什么是RDD? RDD有什么特点? RDD有什么操作? foreac ...

  2. 大数据技术期末复习习题-前两章 大数据概述及Hadoop概述

    链接:大数据技术原理与应用期末复习第三章知识点 链接:HDFS编程实践 习题 1[单选题] 人类社会的数据产生方式大致经历了三个阶段,不包括____C____. A.运营式系统阶段 B.用户原创内容阶 ...

  3. 武汉理工大学 大数据架构与模式期末复习

    武汉理工大学 大数据架构与模式期末复习 在发现学长学姐们上一届是大作业结课而我们是考试结课之后整理复习的结果,可能不会很全,感觉最后老师稍微划知识点的时候没有为难我们(),总之大体是这么些考试内容,也 ...

  4. Hadoop期末复习

    hadoop期末复习整理 第一章 大数据概述 1.两大核心技术:HDFS和MapReduce. 2.大数据计算模式及其代表产品 批处理计算:MapReduce.Spark 流计算:Storm.Flum ...

  5. 广东电大计算机绘图试题,电大计算机绘图期末复习试题及答案参考小抄.doc

    电大计算机绘图期末复习试题及答案参考小抄 一.填空题(每小题1.5分,共30分) 1.CAD的常用图形输入设备有???鼠标??.数字化仪.图形输入板.光笔.??键盘 等.2.CAD的软件可分为系统软件 ...

  6. 太牛了 Python期末复习总结,提高成绩必备回家过个开心年

    Python期末复习之语法 将用一张思维导图的形式来展示python的基础语法. Python期末复习之运算符 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑 ...

  7. java语言程序设计期末复习综合练习题_Java语言程序设计期末复习综合练习题答案...

    Java语言程序设计期末复习综合练习题 一.选择题. 2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )? A.public stat ...

  8. (52 90) 简答 什么叫计算机网络,计算机网络期末复习试卷.doc

    计算机网络期末复习试卷 计算机网络模拟试题及参考答案 一.填空题 1.数据链路层的主要任务是在相邻结点间的线路上无差错地传送以帧为单位的数据,网络层的主要任务是选择合适的路由,应用层的主要任务就是将各 ...

  9. 计算机组成原理考试知识点总结,最新2018计算机组成原理期末复习考试知识点复习考点归纳总结总结...

    电大计算机组成原理期末复习考试考点 归纳总结 科学研究和工程技术计算是计算机最早的领域. 信息处理是计算机应用的最广泛的领域. 计算机系统分为硬件和软件两大部分.硬件是实体部件,是看得见摸得着的.软件 ...

最新文章

  1. 数据库基础笔记(MySQL)6 —— 基础事务
  2. PowerDesigner打开设计文件后提示failed to read the fileXXX的解决办法
  3. js中apply和Math.max()函数的问题?
  4. 逆向辅导:让你的IT文化恢复活力的独特方法
  5. 云函数连接mysql超时_云函数访问MYSQL数据库出错?
  6. Spring的事务管理和数据库事务相关知识
  7. SUS安装配置简明图解攻略
  8. 广日电梯主板灯说明_日立电梯HGP主板说明和电子部件识别
  9. js去除空格12种方法
  10. windows服务器连接教程-手机连接电脑连接
  11. C++实现图片格式转换
  12. 计算机id dns知识,DNS 事件 ID 4013 疑难解答 - Windows Server | Microsoft Docs
  13. Java代码实现excel的导入和导出
  14. 如何快速掌握一门新的技术
  15. __dirname和__filename
  16. ROS用python编写订阅者和发布者(使用存放在其他package的自定义msg文件)
  17. 收款凭证 付款凭证 记账凭证的区别
  18. 清华大学计算机科学王昊,日照最好的三所高中,新鲜出炉!
  19. 华为云数据库 GaussDB(for MySQL),让企业无忧数据恢复
  20. 必看 | Hexo博客搭建超级指南

热门文章

  1. 计算机指纹应用领域,指纹识别是计算机在什么方面的应用
  2. js获取播放器播放时间和停止播放
  3. 揭开木马的神秘面纱 1
  4. “免费的”苹果开发者账号(???)
  5. surfacert能跑java么_Surface RT竟然能跑Linux!微软悄然封杀
  6. Linux系统之部署Samba服务
  7. 计算机三级网络技术第七章(第一轮)
  8. PXE自动化安装CentOS 8
  9. Paragon Partition Manager 9.0 Professional管理磁盘分区
  10. 变色龙嗅探卡功能_变色龙功能