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. Log4Net使用方法

    项目里都会用到日志记录..特别是在本地跑的欢畅..一上服务器就嗝屁的时候..日志会帮你大忙.. Log4net算是一种应用的最广泛的日志记录方式了..下面来简略的说下他的用法.. 先下载log4net ...

  2. 把字符转换为 HTML 实体

    把字符转换为HTML实体:htmlentities() 把HTML实体转换回字符:html_entity_decode() 把预定义的字符 "<" (小于)和 "& ...

  3. Quartz-2D

    Quartz 2D是一个二维图形绘制引擎,支持iOS环境和Mac OS X环境.我们可以使用Quartz 2D API来实现许多功能,如基本路径的绘制.透明度.描影.绘制阴影.透明层.颜色管理.反锯齿 ...

  4. gradle 的sourceCompatibility 与 targetCompatibility 区别

    sourceCompatibility:指定编译编译.java文件的jdk版本 targetCompatibility:确保class文件与targetCompatibility指定版本,或者更新的j ...

  5. 如何在JDK1.8中愉快地处理日期和时间

    如何在JDK1.8中愉快地处理日期和时间 JDK1.8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date实在是太难用了. ...

  6. dubbo框架----初探索-配置

    使用框架版本 dubbo-2.5.3 spring-4.2.1.RELEASE jdk-1.8 tomcat-8.0 zookeeper-3.3.6 Dubbo与Zookeeper.SpringMVC ...

  7. POJ 3071 Football

    很久以前就见过的...最基本的概率DP...除法配合位运算可以很容易的判断下一场要和谁比.    from——Dinic算法                         Football Time ...

  8. POJ 1496 Word Index

    组合数学....和上一题是一样的.... Word Index Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 4303 Acce ...

  9. 微信封号浪潮再起 A货假代购还能在朋友圈泛滥多久?

    你的微信朋友圈是不是很活跃?是不是被很多所谓的名品所包围?没错,这些很多都是A货或假代购的伎俩.如果xmyanke的微信朋友圈出现这些东东,我就会直接屏蔽他的朋友圈权限.具体方法是:打开他的微信详细资 ...

  10. hadoop之根据Rowkey从HBase中查询数据

    1.Hbase 根据rowkey 查询 conf的配置信息如下: conf = new Configuration(); conf.set("hbase.zookeeper.quorum&q ...