Scala学习总结(一)

1、Scala怎样声明变量与常量?
var a = 1 // 变量
val b = 1 // 常量
2、Scala数据类型有哪些?
数据类型 描述
Byte 8位有符号补码整数。数值区间为 -128 到 127
Short 16位有符号补码整数。数值区间为 -32768 到 32767
Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32位IEEE754单精度浮点数
Double 64位IEEE754单精度浮点数
Char 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String 字符串
Boolean true或false
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类
3、String 对象是可变还是不可变?假如要创建一个可以修改的字符串,应该使用哪个类?
不可变。StringBuffer
4、转义字符用什么符号?第一个字母是什么符号?
\
5、IF…ELSE 语法是什么?
if(布尔表达式){
   // 如果布尔表达式为 true 则执行该语句块
}else{
   // 如果布尔表达式为 false 则执行该语句块
}
6、循环语句哪三种,分别语法是什么?怎样退出循环?
循环类型 描述
while 循环 运行一系列语句,如果条件为true,会重复运行,直到条件变为false。
do…while 循环 类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。
for 循环 用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。
7、函数中 Unit是什么意思?
无返回值
8、Scala怎样定义一个不带入参,不返回值的函数
def j():Unit={}
9、Scala怎样定义一个带入参,返回值的函数
def add(param:Int):Int={}
10、什么是闭包?
11、val a = 10,怎样将a转为double类型、String类型?
a.toDouble
a.toString
12、Scala函数中是把方法体的最后一行作为返回值,需不需要显示调用return?
不需要
13、怎样定义一个字符串数组?下标是从1开始的吗?
val numArr = new Array[Int](10)
val a=Array("J","ruoze")
14、1 to 10 ==> 1.to(10),10包含不包含?
包含
15、Range(1, 10),10包含不包含?
不包含
16、Scala 模式匹配语法是什么?

def matchTest(x: Int): String = x match {
case 1 => “one”
case 2 => “two”
case _ => “many”
}

17、异常报错是语法?

抛出异常:throw new IllegalArgumentException

捕获异常
try {
} catch {
case ex: FileNotFoundException =>{
println(“Missing file exception”)
}
case ex: IOException => {
println(“IO Exception”)
}
}finally{
}

18、Array、ArrayBuffer,谁是定长?谁是变长?
Array:定长
ArrayBuffer:变长
19、什么是隐式转换函数?什么场景下用?怎样定义?
20、Scala面向对象,三大特性是什么?什么区别?
继承:父和子的关系
封装:属性、方法
多态:父类引用指向子类对象 
21、Scala 基本语法需要注意点?
1.类名 - 对于所有的类名的第一个字母要大写
2.方法名称 - 所有的方法名称的第一个字母用小写
22、对象是什么?类是什么?怎样在IDEA创建文件?

类是对象的抽象,而对象是类的具体实例。类是抽象的,不占用内存,而对象是具体的,占用存储空间。
对象:Object
类:Class

23、变长数组ArrayBuffer的系列问题
//导入ArrayBuffer的包  
import scala.collection.mutable.ArrayBuffer  
var arrayBuffer = new ArrayBuffer[Int]();
1. 在尾部添加一个元素
arrayBuffer += 1
2. 在尾部添加多个元素
arrayBuffer += (7, 9, 11)
3. 追加集合
val nums = new Array[Int](2)
nums(0) = 2
nums(1) = 4
arrayBuffer ++= nums
4. 指定位置添加元素
arrayBuffer.insert(2, 13)
5. 移除尾部n个元素
arrayBuffer.trimEnd(1)
6. 移除开头n个元素
arrayBuffer.trimStart(1)
7. 移除某个位置的元素
arrayBuffer.remove(2)
8. 移除从下标为n开始(包括n)的count个元素
arrayBuffer.remove(3, 2)
9. ArrayBuffer 转 Array
val toArr:Array[Int] = arrayBuffer.toArray
10. Array 转 ArrayBuffer
val toArrBuff = toArr.toBuffer

你可能感兴趣的:(Scala)