java和scala代码 scala和java混编

scala和java的区别可以说scala来源于java , 但又高于java,我的理解是scala就是在java语言的基础上增加了一层编码的 “壳” 让程序人员可以通过函数式编程的方式来开发程序 。由于scala最终被编译为.class文件运行在JVM虚拟机中,其实本质上还是java, 所以在scala和java可以互调双方的api;
区别:
1,变量的声明
变量var 常量val scala支持自动类型推测
scala更多的是采用常量,而不是变量来解决问题,这样带来的好处是可以减少多线程并发安全问题,特别适合用于多并发分布式的场景
2,函数的声明
关键字def, Scala函数没有返回值用Unit , 相当于java的void
Scala支持函数式编程,可以使用高阶函数 函数是一等公民
3,基本类型
其实可以认为scala中并没有真正意义上的基本类型,他的类型都是类
4,静态
java中静态static是违背java面向对象的编程思想和封装特性的,scala取消了静态的概念,使用了单例对象Object来实现
5,对字符串的支持
Scala支持使用字符串插值的方式对字符串进行格式化,使用$开头进行取值
另外支持使用三引号将其中的内容直接包起来,其中可以包括任何字符而不需要转义
6,类
Scala类中的字段自动带有getter和setter方法,另外可以使用@BeanProperty注解来生成java中的Get/Set方法
Scala中的每个类都有一个主构造器,这个构造器和类定义”交织在一起”,类的参数直接成为类的字段,主构造器执行类体中所有的语句
7,Scala中不支持Break
使用return替代
在循环中用if和布尔类型变量进行守卫
导入java中支持break的包
8,访问范围问题
java中外部看不到内部,内部能看到外部
scala中外部看不到内部,内部看不到外部
9,通配符
Java使用*进行通配,Scala使用 _ 进行通配
10,默认导入的类
scala默认导入java.lang包、scala包、scala.Predef类 。
java默认导入java.lang包
11,特质 trait -- 可以类比java中的接口,但是又和接口非常不一样
java中称为类实现了接口 scala中称为混入了特质
和java中的接口不同 scala中的特质可以包含 带有方法体的方法 。
简述 Scala与Java的区别 :以及优劣势,不要复制百科里面的 。。都是编程语言啊 。
Scala运行于Java平台(Java虚拟机)java和scala代码,并兼容现有java和scala代码的Java程序 。它也能运行于Java ME, CLDC(Java Platform, Micro Edition Connected Limited Device Configuration)上 。目前还有另一.NET平台java和scala代码的实现java和scala代码 , 不过该版本更新有些滞后 。Scala的编译模型(独立编译java和scala代码,动态类加载)与Java和C#一样,所以Scala代码可以调用Java类库(对于.NET实现则可调用.NET类库)。Scala包中包含了编译器和类库 , 以BSD许可证发布 。
面向对象,函数式编程
用Java在各种框架下编译Scala项目 在IDE上的设置
首先 下载的IntelliJ IDEA的 x(社区版) 因为目前它是最好的Scala的IDE 然后选择File |设置|插件 选择可用的选项卡来安装Scala插件
创建Maven项目
在IntelliJ IDEA中 选择文件|新建项目 然后选择Maven的模块创建一个Maven项目 然后修改如下所示的pom xml 添加所有你需要的设置 建立Scala的汇编语言
project xmlnsxmlns= xmlns:xsi= instance
xsi:schemaLocation= v _ _ xsd
modelVersion /modelVersion
groupId foo/groupId
artifactIdmyapp/artifactId
packagingwar/packaging
version SNAPSHOT/version
namemyapp Java EE Webapp/name
url;/url
properties
spring version RELEASE/spring version
/properties
repositories

推荐阅读