Scala表示可扩展性语言,是一种混合函数式编程语言。它是由Martin Odersky创建,并于2003年首次发布。

Scala平滑地集成面向对象和函数式语言的特点,并且Scala被编译在Java虚拟机上运行。许多现有的企业依赖于Java的关键业务应用,正在转向Scala以提高他们的开发效率,应用程序的可扩展性和整体可靠性。

下面是Scala应用开发者首选的重要特征列表。

Scala是面向对象:

Scala的每一个值都是一个对象,它是意义上的纯面向对象语言。对象的类型和行为特征将在以后的章节解释说明。类由子类,并作为一种干净替代多重继承,灵活基于mixin组合机制扩展。

Scala是函数:

Scala的每一个函数为一个值,因为每个值是一个对象,因此最终每一个功能都是一个对象意义上的函数。

Scala提供了一个轻量级的语法用来定义匿名函数,支持高阶函数,它允许函数嵌套,并支持curry处理。这些概念将在以后的章节中解释。

Scala是静态类型:

Scala不像其他一些静态类型语言,并不期望提供冗余类型信息。不必在大多数情况下指定类型,当然也不需要重复。

Scala在JVM上运行:

Scala被编译成由Java虚拟机(JVM)执行的Java字节码。这意味着,Scala和Java可在一个共同的运行平台。可以轻松地从Java代码移动到Scala。

Scala编译器编译Scala代码转换为Java字节码,可以通过scala命令执行。Scala的命令类似于java命令,因为它可以执行编译Scala代码。

Scala可以执行Java代码:

Scala可以使用在Java SDK的Scala中的所有类,也是自定义Java类或者Java开源项目。

Scala vs Java:

Scala有一组功能,它不同于Java。其中一些功能是:

  • 所有类型的对象。

  • 类型推测。

  • 嵌套函数。

  • 函数是对象。

  • 领域特定语言(DSL)的支持。

  • 特质。

  • 闭包。

  • 并发支持灵感来自Erlang。

Scala Web框架:

Scala被到处用于企业Web应用程序。可以查看最流行的几个Scala中 Web框架:

Scala教程的更多相关文章

  1. 如何在Ubuntu上配置scala教程

    Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言 .并集成面向对象和函数式变成的各种特性.这里为了学习spark特地配置了scala. 1.下载scala安装包 ...

  2. 给Java开发者的Scala教程

    author:Michel Schinz,Philipp Haller 1. 简介 本文将该要的介绍Scala语言和其编译.这里假设读者已经有一定的java开发经验,需要概要的了解他们可以用Scala ...

  3. Scala学习笔记之二--基本数据类型

    前言 本篇主要讲Scala的基本数据类型,更多教程请参考:Scala教程 基本数据类型 Scala一共提供了9中数据类型,Scala的基本数据类型与java中的基本数据类型是一一对应的,这是Scala ...

  4. Scala HandBook

    目录[-] 1.   Scala有多cool 1.1.     速度! 1.2.     易用的数据结构 1.3.     OOP+FP 1.4.     动态+静态 1.5.     DSL 1.6 ...

  5. 使用scala开发spark入门总结

    使用scala开发spark入门总结 一.spark简单介绍 关于spark的介绍网上有很多,可以自行百度和google,这里只做简单介绍.推荐简单介绍连接:http://blog.jobbole.c ...

  6. Scala入门学习笔记四--List使用

    前言 本篇将介绍一个和Array很相似的集合List,更多内容请参考:Scala教程 本篇知识点概括 List的构造 List与Array的区别 List的常用方法 List伴生对象的方法 ::和:: ...

  7. Scala入门学习笔记三--数组使用

    前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...

  8. 编程语言教程书该怎么写: 向K&R学习!

    原文地址:Lax Language TutorialsAndrew Binstock 每年在评审Jolt Awards图书的时候,我都会被一些语言教程类图书弄得心力交瘁.从这些年的评审经验来看,这些语 ...

  9. 用scala的actor并发编程写一个单机版的WorldCount

    前言:最近一段时间比较忙,也是比较懒了吧,好长时间没写博客了,新的一年到来,给自己一个小目标,博客坚持写下去,分享一下这历程!废话不多说,开始正题咯(希望大家喜欢!) 首先这算是一个scala程序的入 ...

随机推荐

  1. "Java 反序列化"过程远程命令执行漏洞

    一.漏洞描述   国外 FoxGlove 安全研究团队于2015年11月06日在其博客上公开了一篇关于常见 Java 应用如何利用反序列化操作进行远程命令执行的文章.原博文所提到的 Java 应用都使 ...

  2. Java备份约9亿条数据

    需求:有一张表9亿多条数据,数据加索引总数据量61GB.考虑到这张表的大部分数据都不会再被使用并且大数据量可能影响整库的性能,所以决定将表里某一个时刻之前的数据备份到一张新表中,待备份完成后将旧表中已 ...

  3. ubuntu使用root用户登录/切换root权限

    ubuntu系统默认root用户是不能登录的,密码也是空的. 如果要使用root用户登录,必须先为root用户设置密码 打开终端,输入:sudo passwd root 然后按回车 此时会提示你输入密 ...

  4. commons-pool实战之 GenericObjectPool和GenericKeyedObjectPool

    前面两篇文章说了怎么样简单的使用commons-pool库,这里需要考虑一个问题就是在很多时候我们在池里的对象都是比较重型的并且大多数比较稀缺的 资源,比如说数据库连接,这样如果一直把一些连接放在池里 ...

  5. [Js/Jquery]jquery插件开发

    摘要 上篇文章简单学习了js自调用方法.今天就趁热打铁,学一学怎么编写一个jquery插件. JQuery 参考地址:http://www.cnblogs.com/playerlife/archive ...

  6. fedora14 安装中文输入法

    We trust you have received the usual lecture (n. 演讲 讲课 讲座; 教训 训斥 告诫) from the local SystemAdministra ...

  7. javascript数组的知识点讲解

    javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...

  8. Web渗透测试使用Kali Linux(一)渗透测试概要及环境部署

    渗透测试是利用已经发现的漏洞,采用恶意黑客的惯用手段来尝试对漏洞进行攻击. Kali Linux是BackTrack的进化版,是Linux的衍生版本,专门开发用作渗透测试,其中提供了很多的渗透测试工具 ...

  9. 继承IDbConnection连接不同数据库

    继承IDbConnection连接不同数据库 本方案可实现仅修改app.config即可连接不同数据库,但是设计数据库时需要注意各种数据库的数据类型是不一样的. 各种不同数据库的Connection. ...

  10. [译]git init

    git init git init命令用来创建一个新的Git仓储.可以用在一个已经存在的但是没有受Git版本控制的项目,或者用来初始化一个全新的没有任何文件的空仓储.git init通常是你开始一个新 ...