scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程
早期,scala刚出现的时候,并没有怎么引起重视,随着Spark和Kafka这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。

接下来,我们要来学习:

为什么要使用scala?
通过两个案例对比Java语言和scala语言


为什么使用Scala
开发大数据应用程序(Spark程序、Flink程序) 表达能力强,一行代码抵得上Java多行,开发速度快 兼容Java,可以访问庞大的Java类库,例如:操作mysql、redis、freemarker、activemq等等


Scala对比Java
下面通过两个案例,分别使用java和scala实现的代码数量


案例
定义三个实体类(用户、订单、商品)
Java代码


public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public List<Order> getOrders() {
    return orders;
}

public void setOrders(List<Order> orders) {
    this.orders = orders;
}
} ```

```java /** * 订单实体类 */ public class Order { private int id; private List products;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public List<Product> getProducts() {
    return products;
}

public void setProducts(List<Product> products) {
    this.products = products;
}
} ```

```java /** * 商品实体类 */ public class Product { private int id; private String category;

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getCategory() {
    return category;
}

public void setCategory(String category) {
    this.category = category;
}
} ```

## scala代码
scala case class User(var name:String, var orders:List[Order])	// 用户实体类
 case class Order(var id:Int, var products:List[Product])	// 订单实体类 
 case class Product(var id:Int, var category:String) // 商品实体类












Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐