gpt4 book ai didi

java - 为什么要在 Scala 或 Java 中使用装箱类型而不是在 Java 或 C 中使用原始类型呢?

转载 作者:行者123 更新时间:2023-11-30 20:45:30 25 4
gpt4 key购买 nike

我刚刚对 Scala、Java 和 C 进行了比较。以下是我运行的代码和得到的结果:

Java(原始数据类型):

    class test {
public static void main(String args[]) {
long t1=System.nanoTime();
for (int i=0; i<1000000000; i++) {

}
long t2 = System.nanoTime();

System.out.println((t2-t1));
}
}

输出:1181601584
即 1.2 秒



C:

    #include <stdio.h>
#include <time.h>

int main() {
clock_t t1=clock();
for (int i=0; i<1000000000; i++) {

}
clock_t t2= clock();

printf("%u",(t2-t1)/(double)CLOCKS_PER_SEC);

return 0;
}

输出:2233382994
即 2.2 秒



斯卡拉:

    object test {
def main(args: Array[String]) {
val nos = 1 to 1000000000
val t1 = System.nanoTime
for (i<-nos) {

}
val t2 = System.nanoTime

println(t2-t1)
}
}

输出:12392282270
这是 12.4 秒



Java(盒装):

    class test {
public static void main(String args[]) {
Long t1=System.nanoTime();
for (Integer i=0; i<1000000000; i++) {

}
Long t2 = System.nanoTime();

System.out.println((t2-t1));
}
}

输出:20756681957
即 20.8 秒

现在,我的问题是,如果原始事物比盒装对应物更快,我们为什么要选择使用面向对象语言?我同意以面向对象的方式编写大型项目要容易得多,但是如果效率和速度是我们所寻求的(就像在服务器和 super 计算机中一样,而且我认为更快的软件对于家庭用户来说甚至更好) ,为什么世界上有人会尝试用 Scala 编写代码?更深层次的问题是,为什么会出现这些慢速语言?

最佳答案

选择语言的主要因素并不总是(甚至极少数)是性能。您会在这两者之间选择哪一个:

  1. 语言 A 可以在 30 天内创建一个程序。每次用户交互的响应时间为2毫秒
  2. 语言 B 允许在 2 天内创建相同的程序。但每次用户交互的响应时间为 20 毫秒。

您真的认为最终用户关心响应时间是 2 毫秒还是 20 毫秒吗?这些时间是如此之小,以至于无法区分。但与 2 天的开发相比,30 天的开发时间是巨大的。每天 1000 美元,差别很大。

此外,您的基准测试存在缺陷。

而且,您不使用 OOP 就能够使用 Integer 而不是 int。您使用 OOP 能够以更直观的方式操作由多个字段和方法组成的复杂对象。

关于java - 为什么要在 Scala 或 Java 中使用装箱类型而不是在 Java 或 C 中使用原始类型呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15184803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com