一、概述

1.1 为什么要学Scala?

Spark是新一代的内存级大数据的计算框架,是大数据学习的重要内容。随着Spark的兴起,同时也带动了Scala的学习,因为Spark就是Scala编写的。为了更好的学习Spark,首先学习Scala就是必不可少的。

1.2 Scala和Java的关系?

一般来说,学习Scala的人都了解Java。Scala是基于Java的,它包含了Java的部分类库并进行了包装,同时也有它特有的类库。

1.3 Scala的语言特点

Scala是一门以Java虚拟机(JVM)为运行环境并且将面向对象和面向函数式的特性最佳结合的静态类型编程语言(静态语言需要提前编译,如:java,c++等,动态语言如:js等)。

因此,Scala是一门多范式的编程语言,支持面向对象函数式编程。(多范式指:多种编程方法的意思。有面向过程、面向对象、函数式编程、泛型四种编程方法)。

Scala的源码(.scala)会被编译为Java的字节码(.class),然后运行在JVM之上,并且可以调用现有的Java类库,实现两种语言的无缝连接。同时,Scala还将函数式编程完美的融合到了Java中,作为一门语言,它是非常简洁高效的。

二、Scala环境搭建

2.1 安装步骤

  1. 首先确保已经安装了JDK 1.8;
  2. 下载需要的Scala安装文件scala-*.zip
  3. 解压到需要的目录
  4. 配置环境变量
    SCALA_HOME=D:\Program Files\scala-2.12.15
    PATH=%SCALA_HOME%\bin
  5. 在命令窗口中输入scala测试
  6. 在IDEA中安装Scala插件,默认情况下IDEA不支持Scala的开发,需要安装Scala插件。

三、Hello Word案例

3.1 创建一个maven项目

默认下,Maven不支持Scala的开发,需要引入Scala框架。右键点击->Add Framework Support->选择scala并配置Use library(scala的安装路径)

new一个新的目录scala,并Mark Directory as -> 选择Sources root。

创建包路径,然后右键new一个scala class,

在类中生成main方法:(def main)

object Hello {
def main(args: Array[String]): Unit = {
println("hello world")
System.out.println("hello world")
} }

程序说明;

  1. 参数声明:Java中是(类型 参数名);Scala中是(参数名 类型);
  2. Scala中没有public关键字,如果没有声明访问权限,默认就是公共的;
  3. Scala中没有static关键字,因为scala中没有静态语法;
  4. Scala中没有Void,而有Unit类型表示没有返回值;
  5. Scala中声明方法必须使用def的关键字;
  6. Scala中方法实现赋值给了方法声明,所以中间必须有等号连接。
    def main(args: Array[String]): Unit(方法声明)= (方法实现){}
  7. Scala中一切都是对象且没有静态语法,为了模仿静态语法,上面的代码是通过采用伴生对象单例的方式调用方法。(Scala中使用object声明的对象都是单例对象;伴生对象就是这个类本身,即Hello);
  8. class关键字和Java中的作用相同,用来定义一个类;

3.2 关联源码

在使用Scala的过程中,为了搞清楚Scala的底层原理,可以查看源码和关联源码。

  1. 查看源码:ctrl + 关键字
  2. 关联源码,从官网下载对应版本的scala-sources-2.12.15.tar.gz的源码文件,解压缩到scala的lib目录下;点击Attach Sources,选择这个源码文件就可以查看源码了。
  3. 也可以上官网查看:https://www.scala-lang.org/

Scala概述及环境配置的更多相关文章

  1. [Scala] 安装及环境配置(图文)

    Window 上安装配置 1.Java(JDK)环境配置,详见 Java(JDK)环境 2.从 Scala 官网下载安装包:https://downloads.lightbend.com/scala/ ...

  2. Java基础学习_01 概述及环境配置

    一.概述 1.Java语言平台版本 1.1J2SE(Java 2 Platform Standard Edition)标准版 为开发普通桌面和商务应用程序提供的解决方案,该技术体系是其他两者的基础,可 ...

  3. Java学习笔记-Java概述和环境配置

    基础常识 软件:一系列按照特定顺序组织的计算机数据 和指令的集合 常见的软件: 系统软件:如:DOS,windows,Linux等 应用软件:如:扫雷,迅雷,QQ等 软件的出现实现了人与计算机之间的更 ...

  4. IDEA中配置Scala开发编译环境

    安装JDK 因为Scala是运行在JVM平台上的,所以安装Scala之前要安装JDK. 安装Scala Windows安装Scala编译器 访问Scala官网http://www.scala-lang ...

  5. Scala语言简介和开发环境配置

    Scala语言的简介和开发环境搭建 Scala是一门结合了面向对象特征和函数式编程特征的语言,它是一个创新的编程语言产品.Scala可以做脚本(就像shell脚本一样),可以做服务端编程语言,可以写数 ...

  6. LINUX系统下Java和Scala的环境配置

    最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程.而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又 ...

  7. Windows下Spark单机环境配置

    1. 环境配置 a)  java环境配置: JDK版本为1.7,64位: 环境变量配置如下: JAVA_HOME为JDK安装路径,例如D:\software\workSoftware\JAVA 在pa ...

  8. Java与Android开发环境配置以及遇到的问题解决

    0 概述 所有文章涉及的下载地址在文章下方会有汇总,所有软件的版本最好与系统版本一致 建议安装安卓开发软件至一个目录中,以方便查找 1 Java环境配置 1.1 JDK下载: 据说JDK6用的比较多, ...

  9. Spring3+SpingMVC+Hibernate4全注解环境配置

    Spring3+SpingMVC+Hibernate4全注解环境配置 我没有使用maven,直接使用Eclipse创建动态Web项目,jar包复制在了lib下.这样做导致我马上概述的项目既依赖Ecli ...

随机推荐

  1. CSS基础 水平居中案例

    html结构 <body> <div class="father"> <div class="son"></div&g ...

  2. 04.python哈希表

    python哈希表 集合Set 集合,简称集.由任意个元素构成的集体.高级语言都实现了这个非常重要的数据结构类型. Python中,它是可变的.无序的.不重复的元素的集合. 初始化 set() -&g ...

  3. Selenium_按钮的点击、文本框的输入和清除操作(3)

    from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get(" ...

  4. Nginx日志配置及日志分析脚本案例

    https://blog.csdn.net/bbwangj/article/details/82186162 nginx的log日志分为access log 和 error log 其中access ...

  5. spring cloud feign 报错 feign.FeignException$MethodNotAllowed: status 405 reading 解决

    1.前言 出现报错 feign.FeignException$MethodNotAllowed: status 405 reading XXXXX 需要检查 接口的请求参数是否一致 请求参数是否正确添 ...

  6. Centos 6.8安装配置KVM

    一.开启cpu虚拟化 首先开启CPU虚拟化支持,通过BIOS设置.之后输入 [root@hostname ~]#egrep '(vmx|svm)' /prov/cpuinfo 如果有输出内容,代表cp ...

  7. 关于 cannot create Parameters: [] 报错问题的解决方法

    其实在Sort类中添加无参构造就可以解决 我自己写的是Sort类,其它情况得视你们自己写的类决定 至于为什么也不是很清楚

  8. python中join()方法介绍

    描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法:str.join(sequence) 参数 sequence -- 要连接的元 ...

  9. Genymotion安装apk问题

    Genymotion安装apk时,出现如下错误: 问题原因分析:很多apk使用arm架构的 cpu,在x86上安装会存在问题. 解决办法: 在Genymotion模拟器上安装一个能够解析ARM架构的a ...

  10. day6 斐波那契数列

    1.求图片中的表达式: 2.求图中斐波那契数列的值