一、概述

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 设计模式:单例模型

    一.单例模型简介 代码的设计模式共有25种,不同的应用场景应用不同的设计模式,从而达到简化代码.利于扩展.提高性能等目的.本文简述Python实现的单例模式场景.简而言之,单例模式的应用场景是一个类对 ...

  2. nginx配置图片路径

    首先, 在linux下创建你存放资源的目录,例如:/data/images:用于存放图片. 下一步,打开default.conf配置文件找到server块下的location添加如下 location ...

  3. 日志收集系统系列(四)之LogAgent优化

    实现功能 logagent根据etcd的配置创建多个tailtask logagent实现watch新配置 logagent实现新增收集任务 logagent删除新配置中没有的那个任务 logagen ...

  4. 如何对K8s进行考核?Kuberhealthy来打个样!

    2019年11月,在圣地亚哥KubeCon,我们发布了kuberhealth 2.0.0--将kuberhealthy作为合成监测的Kubernetes operator.这个新功能为开发人员提供了创 ...

  5. Struts-S2-045漏洞利用

    最近也是在看Struts2的漏洞,这里与大家共同探讨一下,本次我复现的是s2-045这个编号的漏洞 漏洞介绍 Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号C ...

  6. 【Java】注解Annotation

    注解 Annotation 理解Annotation jdk 5.0 新增的功能 Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理.通 ...

  7. 《剑指offer》面试题14- II. 剪绳子 II

    问题描述 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] .请问 k[0]*k[1]* ...

  8. WSL删除子系统后无法重装

    问题 WSL卸载后安装error 解决办法 UWP应用卸载后没有删除目录下的文件 C:\Users\wwwfe\AppData\Local\Packages路径下删除就可以了 再次安装会卡顿很久,可能 ...

  9. 使用 fail2ban 保护 frp 服务

    背景 我们一般会使用 fail2ban 来保护暴露到公网的提供密码登录的 ssh 连接等. 但使用 frp 穿透后所有的从外网访问都会变成 127.0.0.1 进入的,原本能用 fail2ban 保护 ...

  10. 搭服务器之centos-ipv6源--配置各虚拟机系统的ipv6网络安装源。

    在2g内存的台式机里安装了三台虚拟机,跑起来好可以,就是swap用的比较多,图见上一篇随笔.现在平台基本有了,自己笔记本算总控,实验室台式机跑着4台机器(一实三虚),加上一台服务器,可以做很多事情了, ...