Scala(百度百科)为什么要学习Scala为什么要使用 Scala 语言?Scala 语言的优势在哪里?为什么选择Scala,它在大数据处理方面有何优势?
博主学习Scala的几个原因:
1)大数据主要的批处理计算引擎框架Spark是基于Scala语言开发的;
2)大数据主要的流式计算引擎框架Flink也提供了Scala相应的API;
3)大数据领域中函数式编程的开发效率更高,更直观,更容易理解;
使用IDEA创建一个Scala项目hashMap扩容、链表转红黑树Java:字节流和字符流(输入流和输出流)FileWriter无法指定文件输出编码FileReader无法设置编码格式
BufferedXXXX函数将数据封装到内存中,内存中操作数据要快,所以它的效率要比非缓冲的高;BufferedXXXX数据输出函数使用flush()方法手动把数据立刻写到输出流中(只有使用了Buffer的对象才需要实现基类的flush()方法),否则要等达到刷新条件才把数据写到输出流中。
Scala是完全面向对象的语言,所以不存在基本数据类型的概念,有的只是任意值对象类型(AnyVal)和任意引用对象类型(AnyRef)。Char是两个字节,Unit对应java中的void,Nothing是所有对象的子类。
Java和Scala的强制类型转换方法不一样;基本上Scala的AnyVal类型之间都提供了相应转换的方法。
int a = 10 byte b = (byte)a
var a : Int = 10 Var b : Byte = a.toByte
Java和Scala的“==”的比较规则不一样
package com.atguigu.bigdata.scala.chapter03
object Scala01_Oper {
def main(args: Array[String]): Unit = {
// TODO 运算符
val s1 = new String("abc")
//val s1 : String = null
val s2 = new String("abc")
// 马丁想:判断两个对象的内存地址的意义
// 判断对象是否相等,双等号会更加直观
// scala语法中双等号就是比较对象的内容,但是和equals不一样。是非空equals操作
println( s1 == s2 )
println( s1.equals(s2) )
println( s1.eq(s2) ) // eq方法在编译后就是java中的双等号
val s = "abc" * 2
println(s)
}
}
scala函数式编程



