Java和.NET之间的战斗永无止境,了解VM级别的差异如何影响这场辩论
我们已经在C#和Java之间的差异方面进行了广泛的写作,涵盖了我们最喜欢的功能,而彼此之间没有相同的功能。 随着哪一种语言比另一种语言更好的激烈竞争,我们正在更深入地研究战场,以查看它们各自的虚拟机(VM)之间的差异和相似之处。
我们开始做吧。
TL; DR:CLR和JVM之间的前5个异同
CLR和JVM之间的主要相似之处包括:
- 两个虚拟机(VM)
- 两者都包括垃圾收集
- 两者都采用基于堆栈的操作
- 两者都包含运行时级别的安全性
- 两者都有异常处理方法
CLR和JVM之间的主要区别包括:
- CLR被设计为与语言无关,JVM被设计为特定于Java
- CLR最初仅与Windows兼容,JVM可与所有主要操作系统一起使用
- CLR使用JIT编译器,JVM使用称为Java HotSpot的专用JIT编译器
- CLR包括用于闭包,协程和指针的声明/操纵的指令,而JVM不包括
- JVM与更强大的错误解决方案和生产监视工具兼容
现在我们已经确定了5个主要的相似点和不同点,让我们进入所有这一切的含义。 从基础开始,然后深入研究所有这些含义。
什么是虚拟机?
不难猜测,虚拟机(VM)是计算机操作系统的虚拟仿真。 除此之外,这种系统抽象有两种不同的实现。