`
wx1568908808
  • 浏览: 31311 次
文章分类
社区版块
存档分类
最新评论

scala语言与java的区别

 
阅读更多
  1. scala支持关联映射,如可以用(key -> value)表示一个键值对

  2. scala中的所有类型都是对象,包括基本数据类型

  3. scala中的case语句用来判断接收的消息,比java中的switch...case...更专注

    receive{    case msg => action()    }

  4. scala行动类实现了线程之上的并发抽象,通过发送消息相互通信,每个行动类都自动维护一个消息队列,并且实现发送消息和接收消息的基本操作。

    receriver ! msg

  5. scala是静态类型的,也即在编译之前就需要确定参数的类型,与C++的参数化类型相似

  6. scala包含两种类型的变量,val变量相当于java中的const,var则是常规变量

  7. scala中的基本数据类型,来源于Java中对相应数据类型的类封装,String类型则相同

  8. scala具有类型推断功能,在可由上下文推断的情况下,可以省略类型说明,如:val x = 4

  9. scala通过def关键字定义函数,在缺省显式return语句的情况下,返回函数最后计算得到的值

  10. scala采用println直接输出到标准输出,而不用System.out.println

  11. scala中的数组索引是args(0),而非java中的args[0]

  12. scala数组Array包含方法foreach(action),其中action是一个传入的函数,例如:x => println(x)

  13. scala提供指令式:for(arg <- args)    println(arg)

  14. scala中的所有操作符都是方法的调用,例如:1+2,等效于(1).+(2)

    0 to 5,等效于(0).to(5),x(1)="scala",等效于(x).update(1,"scala"),x(1)等效于(x).apply(1)

  15. scala通过定义伴生对象,分离静态成员,类似于java中的static关键字

  16. scala Array数组中所有对象都具有相同类型,实例化后数组长度不能再改变,但是数组元素值可以改变

    List数组中的元素值则不可改变,List有"::"实现叠加功能,操作符会创建一个新的List,List不支持append操作

  17. scala包含新的容器对象Tuple,元组可以包含多个不同类型的对象,例如:val tp = (1,2,"scala"),中tp就是一个Tuple[Int,Int,String]对象,tp._1表示取第一个元素

  18. scala中Set和Map类型有可变和不可变两种实现方式,分别保存在不同的包中

  19. scala没有"++"操作符

  20. scala提供trait关键字,描述对象的特质,类似于java中的接口interface

  21. scala提倡函数式编程风格,减少var变量的使用,这样可以得到简洁可读性更强的代码

  22. scala从文件中读取数据,Source.fromFile("filename").getLines()返回一个Iterator[String]对象

  23.  scala中的"=="操作符比较的是值的相等性,提供函数eq、ne比较引用的相等性

  24. 每个类都继承自Any,scala中“==”和equals相同,可以通过重写equals方法改变“==”的意义。类Any有两个子类,AnyVal和AnyRef。AnyVal是scala中内建值类的父类,Byte、Short、Char、Int、Long、Float、Double、Boolean、Unit,前面8个和java中的基本类型相对应。Unit大约相当于Java的Void类型,只有一个实例,写成()。在java平台上,AnyRef实际上就是java.lang.Object的别名。

  25. scala类和java类的不同还在于其继承了一个名为ScalaObject的记号特质,目前为止ScalaObject只包含一个方法名为$tag,在内部使用以加速模式匹配。

  26. Null类是null引用对象的类型,它是每个引用类的子类,Null不兼容值类型,不能把null赋给整数变量。Nothing类型在scala类层级的最底端,它是任何其他类型的子类型,然而根本没有这个类型的任何值,Nothing的一个用处是标明程序的不正常终止。

转载于:https://my.oschina.net/jhone/blog/309466

分享到:
评论

相关推荐

    Scala语言入门

    ### Scala语言入门知识点详解 #### 一、Scala简介 Scala是一种多范式的编程语言,它融合了面向对象编程和函数式编程的特点。Scala语言的设计旨在提高代码的可读性和表达能力,同时保持高性能。Scala运行在Java平台...

    Scala与Java的区别

    1. 分号:Scala与Java的一个直观区别是分号的使用。在Scala中,虽然分号通常是可选的,但在某些情况下(如一行内多条语句)使用分号可以提高代码的清晰性。 2. 函数式编程:Scala是函数式编程语言,这意味着函数是...

    尚硅谷大数据之Scala语言核心编程.pdf

    该书中还分析了Scala和Java以及JVM的关系,指出了Scala语言的几个特点,包括简洁的语法、面向对象和函数式编程的集成、强大的类型系统、易于扩展等。 接着,书中指导读者如何在Windows和Linux系统下搭建Scala开发...

    Scala语言规范-2019.rar

    Scala语言规范-Scala 是一门类 Java 的编程语言,它结合了面向对象编程和函数式编程。 Scala 是纯面向对象的,每个值都是一个对象,对象的类型和行为由类定义,不同的类可以通过混入(mixin)的方式组合在一起。 Scala...

    尚硅谷_韩顺平_Scala语言核心编程_PDF密码解除1

    《Scala语言核心编程》是尚硅谷教育机构韩顺平老师主讲的一门课程,主要针对Scala这门多范式编程语言进行深入讲解。Scala是一种静态类型的编程语言,它融合了面向对象和函数式编程的概念,设计目标是提供一种简洁、...

    Scala语言分析报告

    Scala的内存管理与Java类似,因为它编译后的字节码在JVM上执行。内存空间被划分为堆、方法栈、方法区、本地方法栈和PC寄存器。堆是存储对象实例和数组的主要区域,对象的内存由垃圾收集器(GC)自动管理。堆的大小...

    scala语言pdf_带目录标签

    Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,由Martin Odersky在2003年设计...通过学习这些内容,开发者可以掌握Scala语言,并能将其应用于各种复杂项目中,实现高效、可靠的软件解决方案。

    Scala语言规范.zip

    通过深入学习“Scala语言规范.pdf”,你将能全面理解Scala的语法特性、编程理念和最佳实践,从而能够编写出高效、可维护的代码,充分利用其与Java的互操作性和强大的并发能力。无论你是Java开发者希望扩展技能树,...

    为Java虚拟机编译Scala(Michel Schinz)Compiling Scala for the Java Virtual Machine (Michel Schinz)

    Scala是一门高级编程语言,支持面向对象和函数式编程。它的设计宗旨是在保持表达能力的同时,能够与Java...这些内容展示了Scala语言在保证与JVM良好的集成性的同时,如何在编译时对这些复杂的概念进行了处理和优化。

    scala语言教程及规范

    本教程旨在帮助初学者深入理解Scala语言,并掌握其核心概念和最佳实践。 首先,Scala的基础语法与Java有许多相似之处,因为它们都是基于JVM的语言。然而,Scala引入了许多创新特性,如模式匹配、高阶函数、匿名函数...

    基于maven的scala与java相互调用的简单实例

    标题"基于maven的scala与java相互调用的简单实例"揭示了这个示例的核心:在Maven项目中,使用Scala和Java代码互相调用。Scala是一种强大的静态类型编程语言,它在语法上兼容Java,并且提供了函数式编程和面向对象...

    大数据课程-Scala编程基础-1.Scala语言初识_lk_edit.ppt

    【大数据课程-Scala编程基础-1.Scala语言初识】是针对初学者设计的一门课程,旨在教授如何入门Scala编程,特别适合已有Java基础的学员。Scala是一种在2001年由洛桑联邦理工学院(EPFL)的编程方法实验室研发的语言,...

    Scala语言规范.docx

    ### Scala语言规范解析 #### 一、Scala语言概述 **Scala**是一种强大的多范式编程语言,它将面向对象编程和函数式编程的最佳特性融合在一起。作为一种类Java的语言,Scala旨在提供比Java更简洁、更灵活且功能更...

    Scala入门学习教程.docx

    Scala 语言的基本语法与 Java 语言非常相似,但有一些重要的区别。例如,Scala 语言不需要声明返回类型,main 函数也不需要使用 static 修饰符。另外,Scala 语言使用 object 语句来定义单例对象,而不是使用 static...

    scala和java混合编译

    在现代软件开发中,Java和Scala是两种广泛使用的编程语言。它们各有特色,Java以其稳定性和广泛的社区支持而著名,Scala则以其强大的函数式编程特性及对Java虚拟机(JVM)的无缝集成受到青睐。当一个项目中同时包含...

    scala中文教程(java 平台开发语言 scala 简单教程)

    尽管“匹萨语言”本身并未得到广泛应用,但它为Java泛型的引入奠定了基础,并启发了Scala语言的设计。 #### 二、Scala的设计理念 Scala的设计目标是在保持静态类型安全的同时,提供更加简洁、高效的编程体验。它...

Global site tag (gtag.js) - Google Analytics