看了很多技术网站。都会提到JAVA比C要慢。而且有的还会说会慢上一个数量级,什么解释执行啊,效率低啊~~~~~
今天闲来无事做了个实验,其实也简单 就是循环个 10000000000次,算下时间。结果,JAVA最快的。
代码如下:
先来个C版的:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
time_t t1 = time(NULL);
double k = 0;
for(int j=0;j<100;j++)
for (int i = 0; i < 100000000; i++) {
k += 3.1415926 * i*j;
}
time_t t2 = time(NULL);
printf("%ld\n", t2 - t1);
printf("%f\n",k);
system("pause");
}
再来个java版的
import java.io.IOException;
import java.util.Calendar;
public class test {
public test() {
timeStart = Calendar.getInstance();
double k = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < 100000000; i++) {
k += 3.1415926 * i * j;
}
}
timeEnd = Calendar.getInstance();
System.out.println(k);
System.out.println(timeEnd.getTimeInMillis()
- timeStart.getTimeInMillis());
}
public static void main(String[] args) throws IOException {
new test();
}
private Calendar timeStart;
private Calendar timeEnd;
}
其中C版的我用GCC编译器,编译执行,总共用了约70秒。
用JAVA版的,我的JAVA版本是1.6,编译执行,总共用了约51秒。
最搞笑的是 C版我用VC++6.0编译执行,居然用时140秒。
我的系统是XP,CPU是AMD KT-55 1.8G
后来我又写了个JS版 代码如下:
<html>
<head>
</head>
<body>
<script>
var k;
for(var j=0;j<100;j++)
for(var i = 0; i < 100000000; i++) {
k += 3.1415926 * i*j;
}
alert(k);
</script>
</body>
结果我用谷歌浏览器,等了4分钟也没出结果。放弃。
哪位大虾能帮我解释解释到底为啥~~~
在我看来C是肯定要比JAVA快的,可为啥结果却是JAVA最快?
无限疑惑中~~~~~
分享到:
相关推荐
解释型语言(如VB)的源代码在运行时逐行转化为机器可执行的代码,而编译型语言(如C++)则在执行前将整个源代码编译为可执行文件,执行速度更快,但需要编译过程。 编程的难度取决于所使用的语言和应用场景,但...
Java语言程序设计实验指导书 理论教材:《Java程序设计标准教程》 第1版 邱加永 人民邮电出版社 实验学时:26 要求 1 Java运行环境 通过在不同环境编译运行一个Java编程环境,认识Java程序结构。 2 Java语言基本...
本资源为浙江大学 Java 语言程序设计实验答案全集,涵盖了 Java 语言的基本概念和操作,包括数据类型、变量、运算符、逻辑运算、位运算、字符串操作等。该资源共有五个实验,每个实验都涵盖了特定的 Java 语言知识点...
通过这个实例,我们了解了如何使用Java的JNI调用C语言函数的基本步骤:声明Java本地方法、生成C语言头文件、编写C代码、编译C代码为动态链接库,最后在Java中调用该库。这种方法在需要高效计算、底层系统交互或利用...
C转Java工具通过解析C语言源代码,将其转换为Java语言的等价表达,从而实现了两者之间的桥梁。 该工具的基本工作原理是:首先,它会读取C源代码文件,然后对C语言的语法结构进行分析,包括变量声明、函数定义、循环...
Java语言由Sun Microsystems公司于1995年推出,而C++则源于1983年推出的C语言,由Bjarne Stroustrup开发。两种语言在继承了C语言一些特性的同时,也在面向对象、安全性和平台无关性等方面进行了大量的优化与创新。 ...
《西北工业大学高级语言程序设计Java_UML实验报告》是一份深度探讨Java编程语言与统一建模语言(UML)在实际编程项目中的应用的报告。这份报告旨在帮助学生理解和掌握这两种关键技术,并通过实践来提升软件开发能力...
该软件可以把c语言文件转换为java语言文件
一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的Java程序一个使用ollama本地大语言模型api的...
总的来说,掌握算法和数据结构是成为一名优秀程序员的基础,无论选择Java还是C语言,都需要深入理解和实践。通过不断练习和研究,你将能够更好地应对各种编程挑战,提升自己的编程能力。记住,理论知识与实际编程相...
最后,Java 语言为 Internet 的分布式环境而设计,因为它处理 TC 等协议,使得 Java 程序可以在 Internet 上进行分布式计算。 Java 语言是一种简单易学、易用、健壮、跨平台、解释性和高性能的编程语言。它具有许多...
编译是将整个源代码一次性转换成机器代码的过程,而解释则是逐条转换源代码并立即执行的过程。 面向对象与面向过程是两种不同的编程范式。面向对象强调对象的概念,对象中既包含了数据也包含了处理数据的方法。程序...
C语言是一种广泛应用于系统软件和应用软件开发的通用编程语言,由Dennis Ritchie在1972年基于肯·汤普逊的B语言在UNIX的DECPDP-11计算机上创建。随着时间的推移,C语言因其高效、灵活、功能丰富、表达力强和高度移植...
这段时间本人能找的c或c#转java的工具都在这里。自己留个备份。下面是文件名:C++ to Java Converter、C2J、cnet2_C2J_exe、CPP-to-Java-Converter_Source、CSharp+to+Java+Converter、java转c工具Java2Cpp。没有去...
《Java语言面向对象程序设计实验指导与习题答案》是由范玫和马俊共同编著的一本面向初学者和进阶者的Java编程书籍。这本书旨在帮助读者深入理解Java语言的面向对象特性,并通过一系列的实验指导和习题解答,提升实践...
Java语言程序设计实验报告.pdf
【Java语言程序设计基础知识】 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)于1995年推出。它以其跨平台性、安全性、可移植性和高效性能而闻名。Java的设计目标...
- **编译与解释执行**:Java程序首先通过编译器转换为字节码(一种中间代码),然后由Java虚拟机(JVM)解释执行这些字节码。这种两阶段的过程确保了代码的平台无关性,并允许在不同的操作系统上运行相同的Java程序。 ...
Java作为一种广泛使用的编程语言,因其具有良好的跨平台特性而备受青睐。然而,这种跨平台能力也导致Java与底层系统的交互较为有限,从而限制了某些功能的实现。为了解决这一问题,Java Native Interface (JNI) 提供...
- 编译和解释执行相结合的运行模式,将源代码编译为字节码后解释执行。 - 自动内存回收功能,垃圾收集器能自动回收不再使用的内存,无需程序员显式操作。 - 面向对象特性,包含封装性、继承性和多态性。 - 平台...