Java 所编写的程序在运行的时候占用内存是否真的很大了?

Java所编写的程序在运行的时候占用内存是否真的很大了?“java程序运行的时候占用内存很大”我相信只要接触IT这个行业的人大部分的人都会毫不犹豫回答java程序运行的时候占用内存很大。也是许多java程序员默认的说法。在这里在这里我想在这里说下。
和许多程序员一样我也从c转到java的。由于c是公认的最接近机器语言的,而大部分程序员都会c语言。所以这里我用c与java进行测试比较结果。测试环境:计算机:P4,CPU:2.1GHz;内存:2G;jdk:1.7   
测试:为了让效果精确,我特意让c和java两个程序所实现的功能语句尽量相同,在所写的行数上也力求一致。除此之外最重要的是让程序能裸奔。好啦,我相信大家和我一样迫不及待了吧,现在让我们来开始测试:

java:
public class JavaTest{

public static void main(String[] args){
 for(int i=1;i<100000;i++){
            for(int j=1;j<100000;j++){
         }
      }
   }      
}
现在我们在CMD中键入:java JavaTest<回车>,然后打开“任务管理器”可以看到这个程序占用内存“4910K”,也许大家看到这里还是觉得它占用内存很大。不要急的,我们再在CMD中键入:java @##@¥<回车>,这个是故意输错参数的,应为这个是java.exe本身运行的时候占用的内存,这个时候我们在看“任务管理器”显示进程占用内存为“4371K”。
那么这个程序到底占用内存多少了?4910K-4371K=539K.
好啦,我们现在来看看c程序运行的结果:
c: 
int main (int argc,char* argv[])
{
 for(int i=1;i<100000;i++){
            for(int j=1;j<100000;j++){
         }
      }
return 0; 
}
我们用vc++6.0编译运行,同样查看“任务管理器”程序占用内存情况。
可以看出内存为“675K”.

测试结果:总体来看,java进程“4910K”的确比c进程的“675K”多占用几倍内存。但是如果除去java本身所占用的内存,那么,这个java进程所占用内存实际占用比c进程占用内存还小,哈哈。。可能说道这里大家都不相信,呵呵。。。可是这是事实,大家如果不相信可以亲自测试下,那么大家可能要问那么java本身的占用内存那么大为什么啊?呵呵。。。只要大家看看sun公司开发java语言的目标和优点,就知道为什么啦,这个介绍就不具体时候了,网上有许多解释的文章,大家有需要可以上网了解一下。在这里另外说明一点的就是c能做的事情java也能做到,并且能很快做到,做的很好。除了很底层的事情:驱动、原始套接字(相信以后sun会提供)、系统级的程序(谁让系统是用c开发的了)。以后大家在看见有人说java占的内存多就可以辩论下了!同时也可以让大家明白凡事要自己求证,尤其作为程序员!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。