Scala语言简介
- Spark—新一代内存级大数据计算框架,是大数据的重要内容。
- Spark就是使用Scala编写的。因此为了更好的学习Spark, 需要掌握Scala这门语言。
- Scala 是 Scalable Language 的简写,是一门多范式(范式/编程方式[面向对象/函数式编程])的编程语言
- 联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计Scala
- Spark的兴起,带动Scala语言的发展!
Scala语言诞生小故事
创始人马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala) 递归
Pizza和Scala极大地推动了Java编程语言的发展。[如何理解?]
jdk5.0 的泛型,for循环增强, 自动类型转换等,都是从Pizza 引入的新特性。
jdk8.0 的类型推断,Lambda表达式就是从scala引入的特性。
且现在主流JVM的javac编译器就是马丁·奥德斯基编写出来的。Jdk5.0 Jdk8.0的编译器就是马丁·奥德斯基写的,因此马丁·奥德斯基 一个人的战斗力抵得上一个Java开发团队。
Scala 和 Java 以及 jvm 的关系分析图
一般来说,学Scala的人,都会Java,而Scala是基于Java的,因此我们需要将Scala和Java以及JVM 之间的关系搞清楚,否则学习Scala你会蒙圈。
建议:如果没有任何Java基础的同学,先学Java,至少要学习JavaSE,再学习Scala。
我们分析一下:Scala 和 Java 以及 jvm 的关系 (重要!)。
Scala语言的特点
Scala是一门以java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
- Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
- scala 单作为一门语言来看, 非常的简洁高效 (三元运算, ++ , --)
- Scala 在设计时,马丁·奥德斯基 是参考了Java的设计思想,可以说Scala是源于java,同时马丁·奥德斯基 也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala 和 java相同点和不同点,就可以快速的掌握Scala这门语言
- 快速有效掌握Scala的建议 [1. 学习scala 特有的语法 2. 搞清楚 scala 和java 区别 3. 如何规范的使用scala]