java和scala的区别,Scala相对于java有什么比较大的优势

1,Scala相对于java有什么比较大的优势支持函数式编程 , 更好的泛型支持,各种语法糖(以至于糖尿?。?,代码更简洁,兼容java不明白啊 = =!
2,scala和Java基础语法上的区别编程基础是要有的,因为看scala的资料大部分都是跟其他语言做比较的,如果没有编程基础将很难看懂比较的意义《快学scala》 基础入门《scala编程实战》 这本书我看过, 里面的内容采用的是:知识点 --> 问题 --> 解决办法 --> 注意事项 --> 讨论 --> 参阅 (知识扩展链接) 的形式进行有针对性的的学习.《scala编程》 没印象了, 不知道有没有看过, 就不做评价了
3,Spark 中用 Scala 和 java 开发有什么区别自己分别用Java和Scala写了一个词频统计的例子,自己找了一个1000万的数据,然后模拟的是4个进程,读取的本地txt文件 , 然后统计两种语言的运行时间 , 做了十组对比 , 具体如下:Java与Scala语言性能对比组数/语言Java语言(ms)Scala语言(ms)11827090702179178476317599929741699286055176339193 618271915771822383878175038583917804844510172938315从上面的对比中可以看到,Scala语言速度明显比Java快,上述实验也和自己的电脑配置有关,虽然不能精确的计算出具体的时间 , 但是我们能发现两者之间的差异很大 。【java和scala的区别,Scala相对于java有什么比较大的优势】
4,scala class 和 object的区别细节的东西太多,还是上代码在注释里面细讲吧 [java] view plain copy //类默认是public级别的 class person{ var age=18 //字段必须得初始化() def age=age //这个是方法,没有参数可以省略() def incremen(){this.age+=1} } class student{ var age=20 //底层编译器会自动为私有的age添加get和set的公有方法,可以理解为伪public类型 private[this] var gender="male" //private[this] 只有该类的this可以使用 private var name="clow" //声明了private,底层编译器会自动为私有的name添加get和set的私有方法 //但是可以自己定义属性方法 def getname=this.name def setname(value:string){this.name=value} }Scala类和java类中有些区别,在Scala声明private变量会Scala编译器会自动生成get,set,在Scala中变量是需要初始化的,如果不声明private默认是public的objectScala中没有静态修饰符,static,在object下的成员全部都是静态的,如果在类中声明了与该类相同的名字的object则该object是该类的“半生对象”,可以理解把类中的static集中放到了object对象中 , 伴生对象和类文件必须是同一个源文件,可以用伴生对象做一些初始化的操作 。trait在java中可以通过interface实现多重继承,在Scala中可以通过特征(trait)实现多重继承 , 不过与java不同的是,它可以定义自己的属性和实现方法体 , 在没有自己的实现方法体时可以认为它时java interface是等价的,在Scala中也是一般只能继承一个父类,可以通过多个with进行多重继承 。

    推荐阅读