1. Scala基础语法
Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的
对象 -对象有属性和行为。例如:一只狗的状属性有:颜色,名字,行为有:叫、跑、吃等。对象是一个类的实例。
类 -类是对象的抽象,而对象是类的具体实例。
方法 -方法描述的基本的行为,一个类可以包含多个方法。
字段 -每个对象都有它唯一的实例变量集合,即字段。对象的属性通过给字段赋值来创建
基本语法
区分大小写-Scala
类名
方法名称-所有的方法名称的第一个字母用小写
程序文件名
Scala 关键字
Scala 注释
实例
object HelloWorld {
/* 这是一个 Scala 程序
* 这是一行注释
* 这里演示了多行注释
*/
def main(args: Array[String]) {
// 输出 Hello World
// 这是一个单行注释
println("Hello, world!")
}}
Scala 包
定义包:Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式
引用:Scala 使用 import 关键字引用包
import java.awt.Color // 引入Color
import java.awt._ // 引入包内所有成员
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
... // 因为引入了java.awt,所以可以省去前面的部分}
2. Scala 简介
Scala 是 Scalable Language 的简写,意味着这种语言设计上支持大规模软件开发,是一门多范式的编程语言
Scala 特性
面向对象特性
类和对象: Scala 支持类和对象,可以定义属性和方法
继承和多态: 支持类的继承和多态,可以创建层次结构和重用代码。
抽象类和特质
封装
函数式编程
高阶函数
不可变性
模式匹配
闭包
类型系统:通过编译时检查保障代码安全一致,支持泛型类、协变逆变等多种特性,还具备强大的类型推断、泛型编程及类型系统扩展能力。
扩展性:Scala设计上考虑到领域特定开发需求,提供独特语言机制,能以库的形式添加新语言结构,如方法可作操作符,能自动构造闭包。
并发性
Akka 框架: 基于 Actor 模型,用于构建并发、分布式和容错的应用程序。
Futures 和 Promises: 提供异步编程的抽象,简化并发任务的管理。
Scala 并发集合: 提供线程安全的数据结构,方便并发编程
与 Java 互操作性
Scala和Java能无缝相互调用代码,Scala还可使用Java标准库及框架,借助其丰富生态。图中的关系图展示了Java和Scala代码在JVM上的编译执行过程,以及两者代码相互调用的情况。
Scala和Java及JVM关系图
Javac.class字节码文件
编译器
Java
运行
Scala的SDK
// 1.Java的部分类库
// 2.特有类库
// 3.对Java的类库做了包装
Scala
运行
.scala代码
Import java.io_
// 1 可以使用Java的语法(部分)
System.out.println(“ok”) // 可 以
// 2 scala特有的语法和类库
var t = (“tom”, 100, 12.4) // 元组 Tuple 3
var map = Map((“no1”,100), (“no2”,300)) // Map
Scalac
编译器
//3 对Java的类库做了包装
var arr = Array(1,2,4) //
class Array extendsJava.io.Serializable withjava.lang.Cloneable
.class字节码文件
Java的SDK
(SDK有大量的类库)
JVM for Unix
JVM for Linux
JVM for Windows
.java代码Int num=10
HashMap<String,Intege
r> hm = newHashMap()
硬件
模块化和可扩展性
·特质(Traits): 可以混入类中,提供类似多重继承的功能,增强代码复用性。
·隐式转换和参数: 支持隐式转换和隐式参数,增强代码的灵活性和可扩展性