• scala记录(0)介绍


    Scala介绍:

    Scala是一门多范式的编程语言,一种类似java的编程语言 [1]  ,设计初衷是实现可伸缩的语言 [2]  、并集成面向对象编程和函数式编程的各种特性。

    scala是基于Jvm的,完美兼容Java,是脚本类语言,但为什么说是脚本类语言呢,因为它运行过程如下:

    源码 - scalac(编译) - *.class字节码 - scala - Jvm上 -running
    先编写源码,源码属于Scala的脚本,Scala脚本语法和Java完全不一样,例如:Java定义变量是需要数据类型的,而Scala可以不定义,也可以定义,但有些地方也必须让你定义数据类型

    Scala运行也和Java不一样,它写完的东西生成的都是.class但是使用Javac不能编译Scala源码的,必须使用它自己的Scalac编译,编译后生成的class代码使用Scala和Java都可以,使用Java的话,ClassPath中必须包含Scala运行时的类库。

    做大数据为什么要学习Scala?

    因为Spark是由Scala写的,虽然也支持Java、Python、R语言。

    从学习的成本来说,Scala代价是最高的,最难学的,最容易的是R,但是笔者也没看过。

    Scala好处:

    从生产能力来说,这些语言的代码量都很小,写很短的代码完成复杂的功能,因为他们都是函数式编程语言,

    从资源和第三方类库比较式Python、R、Scala,Scala太难学,一般没什么人用Scala开发第三方类库的,

    但是Scala有一个好爸爸,就是Java,因为Java中的类库远远要比其他要多,因为它的社区式最庞大的,也没有这样的必要用Scala再去把Java写过的类库再写一遍,因为Scala本身就可以不经过任何步骤并使用Java类库。

    从文档和社区来说,单说Scala比其他都比较差,但是从平台执行速度Scala是最快的,因为Scala就是在Jvm之上的,Jvm执行速度和C++的速度是不相上下的。

    Spark最好的集成的语言就是Scala,因为使用的Scala开发的Spark。

    在Spark的编程中,最好的考虑就是Scala,如果Spark出现一个新功能第一个支持的就是Scala,其次再是Python和R,因为还要让Python再去开发才行,如果想使用新特性,就要首先选择Scala。

    Scala官网6个特征。

          1).Java和scala可以混编

          2).类型推测(自动推测类型)

          3).并发和分布式(Actor)

          4).特质,特征(类似java中interfaces 和 abstract结合)

          5).模式匹配(类似java switch)

          6).高阶函数

  • 相关阅读:
    CF 1006C Three Parts of the Array【双指针/前缀和/后缀和/二分】
    经验笔记二
    CF 1006B Polycarp's Practice【贪心】
    CF 1003D Coins and Queries【位运算/硬币值都为2的幂/贪心】
    CF 1003C Intense Heat【前缀和/精度/双层暴力枚举】
    CF 1003B Binary String Constructing 【构造/找规律/分类讨论】
    CF 1005C Summarize to the Power of Two 【hash/STL-map】
    CF 1005B Delete from the Left 【模拟数组操作/正难则反】
    CF 1005A Tanya and Stairways 【STL】
    CF 1009A Game Shopping 【双指针/模拟】
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10371706.html
Copyright © 2020-2023  润新知