java long scala_scala和java哪个运行速度快

在spark时代,scala流行起来,有人认为scala比java好用,scala简单,简洁。觉得java比较繁琐,确实,在代码量上来说,确实如此,今天看了一些文档,发现其中的奥秘。

从代码量上来说

scala比java简洁

开发效率高于java,这是无可置疑的。

比如:

java的输出:System.out.println(“hello world”);

scala的输出: println(“hello world”)

2.两者都依赖jvm虚拟机

Scala程序必须要基于jvm,Scala是在Java的基础上开发实现的。所以要 将scala进行编译,然后交给jvm进行执行。

而java也是基于jvm,通过字节码编译,执行。

3.那么两者的执行快慢如何得出:

scala的底层是java,按说是java运行的快。

java代码 for

public class Demo1 {

public static void main(String[]args){

long start = System.currentTimeMillis();

int t = 0;

for (int i= 0; i<= 100000;i++) {

t += i;

}

long end = System.currentTimeMillis();

System.out.println(end-start);

System.out.println(t);

}

}

结果为:

3

705082704

Process finished with exit code 0

可以看到java的运行确实很快。

再来看一下scala的两种方式:

一种是while 一种是for

首先看一下for循环

object Demo2 {

def main(args: Array[String]): Unit = {

var start = System.currentTimeMillis

var t = 0

for (i

t += i

}

val end = System.currentTimeMillis

println(end-start)

println(t)

}

结果为:

422

705082704

Process finished with exit code 0

再来看一下while循环

object Demo3 {

def main(args: Array[String]): Unit = {

val start = System.currentTimeMillis

var total = 0

var i = 0

while ( {

i < 100000

}) {

i = i + 1

total += i

}

val end = System.currentTimeMillis

println(end - start)

println(total)

}

}

2

705082704

Process finished with exit code 0

发现scala的for循环居然比while循环慢了这么多。本人测试多次,公平测试。

从上面来看 scala中的for比while循环慢很多。在代码优化中可以想到在此优化。

还有其他的测试总结: 用java代码和scala代码,对比同一个算法,发现java比scala快很多。执行的快慢应该主要看scala编译成字节码的质量了。

两者的比较大家也可以测试一下。