day01 Scala概述入门和安装测试
概述
- 什么是Scala?
一门可伸缩有弹性(多范式:具有多种编程方法的意思。比如四种程序设计的方法:面向对象,面向过程,泛型,函数式)的高级编程语言(静态类型语言:类型必须提前指定好),logo像是一个弹簧
- 特点
1.基于java开发,和java有类似的语法
2.程序运行在java虚拟机
3.具有多种语言特性
4.相比java更加简介高效,无缝衔接java类库,集合java跨平台,自动垃圾回收等优点
之所以可伸缩:融合了不同语言的新特性:面向对象(java),函数式编程,面向过程
Scala基于java,代码的执行流程和java极其相似。- Scala基于java的原因:
Scala作者编写:Pizza & Scala,都极大推动了java语言的发展
JDK1.5的泛型,增强for循环,自动类型转换等都是从Pizza语言引入的新特性
JDK1.8的类型推断,λ(lambda)表达式是从Scala语言引入的新特性
- Scala基于java的原因:
- 特点
- 为什么要学Scala?
kafka的客户端虽然是java开发的,可以使用java程序访问,但是内部代码是由Scala语言编写的
之后的Spark(95%)和Flink(30%)都是由Scala语言编写的,函数式的编程特性更利于大数据领域的开发,效率更高
安装测试
- 解压Scala的家目录
- 配置环境变量:SCALA_HOME和PATH
- 验证
- 插件安装:下载和idea(2017.3.4)一样版本的Scala插件
- 创建项目,导入插件(本地导入,插件中搜索不到?只能从磁盘导入)
- 创建模块
pom.xml不显示蓝色,只要右键pom.xml后点击Add as Maven Project即可 - 创建包和添加框架支持
- Hello Scala案例(测试)
- 代码解析:Gitee链接地址: link
代码运行后target才会出现两个编译的.class字节码文件:伴生对象所属类和伴生对象的伴生类
- 伴生对象伴生类和伴生对象所属类
伴生对象伴生类和伴生对象名字完全一样两者相伴相生,伴生对象所属类是伴生对象名字后加$
伴生对象定义了代码的访问入口
伴生对象所属类将全局变量,构造方法私有化
java中使用类名调用静态属性和方法,在Scala中这样做不符合面向对象的思想,所以马丁就去除了static关键字,使用object声明伴生对象解决静态属性问题 - IDEA中哪里是classpath?
- 添加源码关联:方便的查看Scala内部源码