1.Scala-概述-安装配置

Scala 安装配置

 

1.1 为什么选择 Scala

 

  Scala 产生于瑞士的洛桑联邦理工学院( EPFL),是“ 可扩展语言”

(Scalable Language)的缩写,Sala 是一门静态类型语言, 是一门以 Java 虚拟机为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用 Scala 编写出更加精简的程序, 也能用于构建大型复杂系统, 并且他可以访问任何 Java 类库并且与 Java 框架进行互操作。

1. 运行在 JVM JavaScript 之上的语言

  Scala  不仅利用了 JVM  的高性能以及最优化性, Java  丰富的工具及类库生态系统也为其所用。不过 Scala 并不是只能运行在 JVM 之上! Scala.js

http://www.scala-js.org)正在尝试将其迁移到 JavaScript 世界。

2. 静态类型

  在 Scala 语言中,静态类型( static typing)是构建健壮应用系统的一个工具。Scala 修正了 Java 类型系统中的一些缺陷, 此外通过类型推演( type inference)也免除了大量的冗余代码。

3. 混合式编程范式——面向对象编程

  Scala 完全支持面向对象编程( OOP)。Scala 引入特征( trait)改进了Java 的对象模型。trait 能通过使用混合结构( mixin composition)简洁地实现新的类型。在 Scala 中,一切都是对象,即使是数值类型。

4. 混合式编程范式——函数式编程

  Scala 完全支持函数式编程( FP),函数式编程已经被视为解决并发、大数据以及代码正确性问题的最佳工具。使用不可变值、被视为一等公民的函数、无副作用的函数、高阶函数以及函数集合, 有助于编写出简洁、强大而又正确的代码。

5. 复杂的类型系统

  Scala 对 Java  类型系统进行了扩展, 提供了更灵活的泛型以及一些有助于提高代码正确性的改进。通过使用类型推演, Scala 编写的代码能够和动态类型语言编写的代码一样精简。

6. 简洁、优雅、灵活的语法

  使用 Scala 之后,Java 中冗长的表达式不见了,取而代之的是简洁的

Scala 方言。Scala 提供了一些工具, 这些工具可用于构建领域特定语言

(DSL), 以及对用户友好的 API 接口。

7. 可扩展的架构

  使用 Scala,你能编写出简短的解释性脚本,并将其粘合成大型的分布式应用。以下四种语言机制有助于提升系统的扩展性: 1) 使用 trait  实现的混 合结构;2) 抽象类型成员和泛型; 3) 嵌套类;4) 显式自类型( self type)。

扩展:

动态语言和静态语言

动态类型语言:是指在运行期间才去做数据类型检查的语言。在用动态语言编程时, 不用给变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python 和 Ruby 就是一种典型的动态类型语言;
静态类型语言:与动态类型语言刚好相反,它的数据类型检查发生在在编译阶段,也就是说在写程序时要声明变量的数据类型。C/C++、C#、JAVA 都是静态类型语言的典型代表。

强类型语言和弱类型语言

1.强类型语言: 使之强制数据类型定义的语言。没有强制类型转化前, 不允许两种不同类型的变量相互操作。强类型定义语言是类型安全的语言,如 Java、C# 和 Python,比如 Java 中“int i = 0.0;”是无法通过编译的;

2.弱类型语言: 数据类型可以被忽略的语言。与强类型语言相反, 一个变量可以赋不同数据类型的值,允许将一块内存看做多种类型,比如直接将整型变量与字符变量相加。JavaScript、PHP 都是弱类型语言。

注意,强类型语言在速度上略逊色于弱类型语言, 使用弱类型语言可节省很多代码量,有更高的开发效率。而对于构建大型项目, 使用强类型

语言可能会比使用弱类型更加规范可靠。

面向 XX 编程:

面向过程编程: 整个程序按照步骤编写, 程序更着重业务步骤的。
面向对象编程: 提出对象封装概念, 将业务修改成对象之间的关系处理。面向接口编程: 更高层次的抽象, 将业务抽象成一些接口规则框架。
面向切面编程: 另一个思考维度, 着重于业务逻辑的动态组织。命令式编程:关心解决问题的步骤
函数式编程:关心数据的映射,是数学函数,不是程序中的函数概念
 

命令式编程:


函数式编程:

1.2 Java 的关系

 

1.3 安装 Scala

 

  Scala 需要 Java 运行时库,安装 Scala 需要首先安装 JVM 虚拟机,推荐安装 JDK1.8。

  在 http://www.scala-lang.org/ 下载 Scala2.11.8 程序安装包

  根据不同的操作系统选择不同的安装包,下载完成后,将安装包解压到安装目录。将 scala 安装目录下的 bin 目录加入到 PATH 环境变量。

  安装完成后,在命令行输入 scala:

Scala 安装完成

1.4 安装 SBT(或者【不推荐,网络不稳定】)

 

SBT 是 Scala 的构建工具,类似于 Java 中的 Maven, 前往http://www.scala-sbt.org/地址下载 SBT 的安装包, 进行安装。

安装完成后,将环境变量加入到 Path 路径。

打开 CMD,执行 sbt,会进行 sbt 的初始化,下载相对应的支撑包。

1.5 配置 IDEA 环境

工程化项目开发, 推荐使用以下 IDE 进行开发, 鉴于 IDEA 的应用普遍性,后期用 IDEA 作为开发工具。

配置 IDEA 支持 Scala 以及 SBT

1.6 使用 Scala REPL

REPL — 交互式解释器环境。

R(read)、E(evaluate)、P(print)、L(loop)

输入值,交互式解释器会读取输入内容并对它求值, 再返回结果, 并重复此过程。(所见即所得)

  • 变量在会话周期内一直可用。
  • 多行代码和单行代码一起编译。
  • 支持链接外部代码和库。
  • REPL 历史命令跨会话存储。

在命令行输入 scala 以启动 Scala REPL:

Hello World!

Scala 并不是一个解释器,你输入的内容被快速编译成字节码, 交由 Java

虚拟机进行执行。

1.7 使用 Scala Doc

访问

1.8 Hello World

在新建 Scala 文件的时候,可以以 sc 结尾,也可以为 scala 结尾,sc 结尾一般认为是交互性脚本文件。

在 IDEA 中新建项

右键项目,选择添加 Scala 库:

将 src/main/java 改成 src/main/scala,也可以不改, 只是一个名字而已。

新建 com.atguigu 包,创建 HelloWorld 类。

类内容如下:

pom.xml 文件内容如下:

打包程序:

可以在 target 下面发现:

通过命令行运行如下:

  运行生成的 jar 包有两种方式, scala **.jar 和 java –jar **.jar

  如果需要 java –jar **.jar 运行成功,需要将 pom 文件中的 scala 依赖的

scope 去掉。

  还可以看到 scala 文件转换成了 class 文件:

原文地址:https://www.cnblogs.com/LXL616/p/11105049.html

时间: 2024-10-21 22:07:23

1.Scala-概述-安装配置的相关文章

Scala下载安装配置(Mac)

---恢复内容开始--- 1.访问scala的官网这里下载最新版的scala. 2.解压缩文件包,可将其移动至/usr/local/share下 1 mv /download/scalapath /usr/local/share 3.修改环境变量,在mac下使用sudo su进入管理员权限,修改配置文件profile, 1 vim /etc/profile 在文件的末尾加入 1 export PATH="$PATH:/usr/local/share/scala/bin" :wq!保存退

Scala 概述+scala安装教程+IDEA创建scala工程

Scala概述 1.1.什么是Scala Scala是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性.Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序. 1.2.为什么要学Scala 1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验. 2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快:Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多. 能

redis使用基础(一) ——Redis基本概述与安装配置

redis使用基础(一) --Redis基本概述与安装配置 (转载请附上本文链接--linhxx) 一.特性 1.存储方式 Redis采用Key-Value类型进行存储,数据存储在内存中,不存在硬盘中,由于避开了I/O,因此读写速度比关系型数据库快很多,普通的笔记本每秒可以读写超过10万个键值. 2.持久性 为了避免存在内存中导致的程序退出后数据丢失问题,Redis提供将数据异步写入硬盘,不影响继续提供服务. 3.灵活性 Redis可以为每个键设置生存时间,到期后自动删除.就此而言可以将其用作缓

概述hibernate入门安装配置

1.jdbc连接的优缺点 JDBC的优点 直接底层操作,提供了很简单.便捷的访问数据库的方法,跨平台性比较强.灵活性比较强,可以写很复杂的SQL语句. JDBC的缺点 1).因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上. 2).操作比较繁琐,很多代码需要重复写很多次. 3).如果遇到批量操作,频繁与数据库进行交互,容易造成效率的下降. Jdbc是一个比较底层的东西,灵活写SQL语句 1).注册驱动 2).获得连接 3).产生一个State

Scala系统学习(二):Scala开发环境安装配置

Scala可以安装在任何基于UNIX/Linux或基于Windows的系统上.在您的机器上开始安装Scala之前,必须在计算机上安装Java 1.8或更高版本. 下面请按照以下步骤安装Scala. 步骤1:安装Java 首先,您需要在系统上安装Java软件开发工具包(SDK).要验证是否已经安装了Java,请根据您正在使用的操作系统平台,执行以下两个命令 - 对于Linux/Unix系统 - $java –version 对于Windows系统(打开命令提示符) - C:\Users\Admin

Scala概述

官网:https://www.scala-lang.org/ Scala概述 Scala(发音为/?skɑ?l?, ?ske?l?/)是一门多范式的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性. Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序,Scala的编译模型(独立编译,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库. 为什么要使用Scala Spark源码核心是使用Scala开发的,既然要学习Spark肯定要学习一些Spa

Exchange2016正式版功能介绍及全新安装配置

Exchange2016功能介绍及全新安装配置 说到Exchange服务相信很多人都在关注,微软在2015年更新了很多服务,从功能上来说确实做了很多优化及提升,具体就不多说了,微软在2015年10月1日发布了Exchange2016正式版,版本还是分为标准版和企业版,此次发布为多语言版本 同样微软在2015年发布了那些新产品呢 : 我们还是说说Exchange2016,从安装及官网文档上看微软从Exchange2010到Exchange2016角色上缩减了很多,从Exchange2010的Mai

(四)Cacti安装配置

一.Cacti 监控介绍 1.Cacti简介 Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具. 简单的说Cacti 就是一个PHP 程序.它通过使用SNMP 协议获取远端网络设备和相关信息,(其实就是使用Net-SNMP 软件包的snmpget 和snmpwalk 命令获取)并通过RRDTOOL 工具绘图,通过PHP 程序展现出来.我们使用它可以展现出监控对象一段时间内的状态或者性能趋势图. 2.Cacti 架构概述 通过上图我们可以发现Cacti

spark1.1.0集群安装配置

和分布式文件系统和NoSQL数据库相比而言,spark集群的安装配置还算是比较简单的: 安装JDK,这个几乎不用介绍了(很多软件都需要JDK嘛) wget http://download.oracle.com/otn-pub/java/jdk/7u71-b14/jdk-7u71-linux-x64.tar.gz?AuthParam=1416666050_dca8969bfc01e3d8d42d04040f76ff1 tar -zxvf jdk-7u71-linux-x64.tar.gz 安装sc

实战1 svn安装配置

大纲 一.subversion概述 二.subversion系统逻辑架构图 三.svn的安装配置 #svn的安装 ##svn的启动 ###测试svn服务 ####一下没有看懂什么用? #####关于subversion组件 四.客户端安装与测试 --------------------- 一.subversion概述 Subversion(SVN)是一个开源的,跨平台的版本控制系统,由CollabNet公司成立于2000年: Subversion作为新一代的版本管理系统,以其目录版本化.原子提交