一、概述

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. python 根据传进来的参数,动态拼接sql

    根据传进来的参数,动态拼接sql,可用于实现一个方法,有些字段不确定,又用到的情况,如查询,三个查询条件,有的时候只用到一个查询条件,其他用不到则不需要拼接 def show_runjob_detai ...

  2. Android8 以上使用 UIautomator Viewer提示Unexpected error while obtaining UI hierarchy报错(方法二)

    一:最常见的一个问题就是:Android8及以上的系统无法获取到页面,提示报下面的错误 二:解决办法 1.下载新的tools,在下面链接里找到SDK tools下载 http://www.androi ...

  3. sqlserver - 查出的结果集,集成为json串放在一个字段里

    1.效果 2.sql SELECT top 20 (select [name] as [名字] from staffBasicInfo For JSON PATH,ROOT('第一级key')) k ...

  4. Word2010邮件合并制作成绩单

    原文链接: https://www.toutiao.com/i6488941003494392333/ 准备数据源: 选择"邮件"选项卡,"开始邮件合并"功能组 ...

  5. JVM调优2-远程监控

    监控远程JVM VisualJVM不仅是可以监控本地jvm进程,还可以监控远程的jvm进程,需要借助于JMX技术实现. 什么是JMX JMX(Java Management Extensions,即J ...

  6. C# 给PDF文档设置过期时间

    我们可以给一些重要文档或者临时文件设置过期时间和过期信息提示来提醒读者或管理者文档的时效性,并及时对文档进行调整.更新等.下面,分享通过C#程序代码来给PDF文档设置过期时间的方法. 引入dll程序集 ...

  7. 如何管理leader对你的能力预期?

    在内网看到一个讨论帖,原文如下: 如何管理leader对你的能力预期? 你一个项目做得好,之后类似项目,leader认为你也就是合格水平,而且认为你只会做这种项目. SAD.. 思考 在开始之前先想下 ...

  8. 【刷题-LeetCode】223. Rectangle Area

    Rectangle Area Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectang ...

  9. redis常见类型

    1.(key) Redis 键命令用于管理 redis 的键. 语法 Redis 键命令的基本语法如下: 1 redis 127.0.0.1:6379> COMMAND KEY_NAME  实例 ...

  10. C++11多线程之future(一)

    // ConsoleApplication5.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include<random> #in ...