大数据学习:Scala 语言特点,Scala与Java的区别?

Scala 是一种有趣的语言。它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃Java这个强大的平台,它运行在Java虚拟机 (Java Virtual Machine)之上,轻松实现和丰富的Java类库互联互通。它既支持面向对象的编程方式,又支持函数式编程。它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言。
Scala六大特征:
(1)java和scala可以混编。
(2)类型推测(自动推测类型),在可由上下文推断的情况下,可以省略类型。
(3)支持并发和分布式Actor。
(4)Traits特质特性(类似java中interface和abstract结合)。
(5)模式匹配(类似javaswitch)。
(6)高阶函数:函数的参数是函数,或者函数的返回类型是函数,或者函数的参数和函数的返回类型是函数的函数。
Scala与Java的区别:
不同点:
(1) scala与java都有七种数值类型int、short、long、byte、float、double、boolean这7种,但是scala中这7种值类型是类,在java中属于基本类型,java中,数据类型分成基本类型和引用类型,scala中不区分。
(2) scala包含两种类型的变量,val变量相当于java中的常量,var则是常规变量
(3) scala中的变量或函数的类型总是写在变量或函数的后面,变量的类型可以省略。
(4) 在scala中操作符是方法,除了字母数字之外的其他特殊字符也可以作为方法,在java中操作符不是方法。
(5) scala中的通配符是_,java中的通配符是*。
(6) scala中的unit相当于java中的void。
(7) scala中没有static,但是可以用object来达到java中相同的效果,scala中的object是单例对象,相当于java中的工具类,可以看成是定义静态的方法的类,object不可传参数。
(8) scala支持关联映射,如可以用(key -> value)表示一个键值对。
(9) scala具有类型推断功能,在可由上下文推断的情况下,可以省略类型,也可以省略分号。
(10) scala的return是可选的,方法调用会自动返回最后求值的表达式。如果scala使用了return则需要显示指定方法的返回值Java需要显示的采用return进行值的返回。
(11) 类和方法修饰符的默认值:scala默认是public,java默认是protected。
(12) scala不支持接口interface,采用trait(类似于Java中的抽象类)。java支持接口。
(13) scala是面向对象+面向函数编程的语言,java是面向对象的语言。
相同点:
(1)都是基于JVM的语言

你可能感兴趣的:(大数据学习:Scala 语言特点,Scala与Java的区别?)