听说JVM是用C++写的?为什么不用自己的语言JAVA写呢?
各位JAVA的大神们好!!我是学C++的,算是个二流选手。最近简单研究了一下JAVA和C++的区别。别跟我说谁好谁不好,我不想听这个,都有存在的价值……我想问一下:听说J...
各位JAVA的大神们好!!
我是学C++的,算是个二流选手。最近简单研究了一下JAVA和C++的区别。
别跟我说谁好谁不好,我不想听这个,都有存在的价值……
我想问一下:听说JVM是用C++写的?为什么不用自己的语言JAVA写呢? 展开
我是学C++的,算是个二流选手。最近简单研究了一下JAVA和C++的区别。
别跟我说谁好谁不好,我不想听这个,都有存在的价值……
我想问一下:听说JVM是用C++写的?为什么不用自己的语言JAVA写呢? 展开
15个回答
展开全部
c是运行速度最快的 而且最重要的是 可以控制硬件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
够呛 那谁能支撑这个虚拟机的虚拟机运行呢 我觉得可能有给java专门从底层适配一个指令集的处理器倒是可以 但是可能工程量太庞大了 没有人愿意揽这费力不讨好的事 况且还有好多某些公司 某些人的专利什么的阻挡
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是傻,这问题还用问。回答完毕
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然是因为做不到了,这是设计的层次不同,是计算机软件从底层向高层的趋势决定的,语言一层层封装,java变成C++,C++变成C,C变成汇编,汇编变成指令集,指令集变成二进制,如果jvm可以使用java写,那他得再实现一边C++的功能,既然有了C++,直接用就是了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然你学C++的,你应该知道C++有指针,是一种介于低级语言和高级语言之间的一种语言,C++可以操纵底层资源,和硬件关系相对较大。
学了Java也应该知道Java是一种面向对象的高级语言,它封装(或者说对开发者屏蔽)了指针,不能直接操纵硬件,源程序经过编译并不生成机器码,而是生成字节码这种中间代码,并且为了跨平台特性,字节码是不能直接在机器上运行的,需要有一个虚拟机(JVM)来解释执行。而不同平台底层肯定不一样,所以不同平台上的JVM是不一样的。JVM就负责把通用的字节码解释成对应平台的底层代码去执行。不难看出,要这么做,那么JVM的实现就必须和特定硬件资源平台密切相关,Java语言自己目前是做不到的。
从哲学角度说:
Java程序运行需要JVM的支持,如果JVM又是用Java语言写的,那么为了运行Java程序就要启动JVM,而启动JVM因为JVM本身又是个Java程序,那么又需要启动一个JVM,不就陷入一个永久的矛盾的悖论中去了么
学了Java也应该知道Java是一种面向对象的高级语言,它封装(或者说对开发者屏蔽)了指针,不能直接操纵硬件,源程序经过编译并不生成机器码,而是生成字节码这种中间代码,并且为了跨平台特性,字节码是不能直接在机器上运行的,需要有一个虚拟机(JVM)来解释执行。而不同平台底层肯定不一样,所以不同平台上的JVM是不一样的。JVM就负责把通用的字节码解释成对应平台的底层代码去执行。不难看出,要这么做,那么JVM的实现就必须和特定硬件资源平台密切相关,Java语言自己目前是做不到的。
从哲学角度说:
Java程序运行需要JVM的支持,如果JVM又是用Java语言写的,那么为了运行Java程序就要启动JVM,而启动JVM因为JVM本身又是个Java程序,那么又需要启动一个JVM,不就陷入一个永久的矛盾的悖论中去了么
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询