最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 云计算 >
学大数据一定要学scala吗?
网络发表于 2020-08-31 18:40 次浏览
Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。
 
Scala 的设计目的是要和两种主流面向对象编程语言 Java 和 C#实现无缝互操作,这两种主流语言都非纯面向对象。Scala运行在Java虚拟机上,并兼容现有的Java程序。

Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。
 

1.为什么使用scala?

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

3.scala对比Java

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

3.1案例一

    定义三个实体类(用户、 订单、 商品),Java代码如下:


  1.  
    /**
  2.  
    * 用户实体类
  3.  
    */
  4.  
    public class User {
  5.  
    private String name;
  6.  
    private List<Order> orders;
  7.  
    public String getName() {
  8.  
    return name;
  9.  
    } p
  10.  
    ublic void setName(String name) {
  11.  
    this.name = name;
  12.  
    } p
  13.  
    ublic List<Order> getOrders() {
  14.  
    return orders;
  15.  
    } p
  16.  
    ublic void setOrders(List<Order> orders) {
  17.  
    this.orders = orders;
  18.  
    }
  19.  
    } /
  20.  
    **
  21.  
    * 订单实体类
  22.  
    */
  23.  
    public class Order {
  24.  
    private int id;
  25.  
    private List<Product> products;
  26.  
    public int getId() {
  27.  
    return id;
  28.  
    } p
  29.  
    ublic void setId(int id) {
  30.  
    this.id = id;
  31.  
    } p
  32.  
    ublic List<Product> getProducts() {
  33.  
    return products;
  34.  
    } p
  35.  
    ublic void setProducts(List<Product> products) {
  36.  
    4this.products = products;
  37.  
    }
  38.  
    } /
  39.  
    **
  40.  
    * 商品实体类
  41.  
    */
  42.  
    public class Product {
  43.  
    private int id;
  44.  
    private String category;
  45.  
    public int getId() {
  46.  
    return id;
  47.  
    } p
  48.  
    ublic void setId(int id) {
  49.  
    this.id = id;
  50.  
    } p
  51.  
    ublic String getCategory() {
  52.  
    return category;
  53.  
    } p
  54.  
    ublic void setCategory(String category) {
  55.  
    this.category = category;
  56.  
    }
  57.  
    }

scala代码如下:


  1.  
    case class User(var name:String, var orders:List[Order]) // 用户实体类
  2.  
    case class Order(var id:Int, var products:List[Product]) // 订单实体类
  3.  
    case class Product(var id:Int, var category:String) // 商品实体类

3.2 案例2

    有一个字符串(数字) 列表, 我们想将该列表中所有的字符串转换为整数。


  1.  
    Java代码如下:
  2.  
    // 创建一个Integer类型的列表
  3.  
    List<Integer> ints = new ArrayList<Integer>();
  4.  
    for (String s : list) {
  5.  
    ints.add(Integer.parseInt(s));
  6.  
    }
  7.  
    scala代码
  8.  
    val ints = list.map(s => s.toInt)

3.3 Java 和Scala底层执行原理

尖叫提示scala程序运行需要依赖于Java类库,必须要有Java运行环境,scala才能正确执行。根据上述流程图,要编译运行scala程序,需要

  1. jdk(jvm)
  2. scala编译器(scalaSDK)
标签:scala是什么
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐