初学者怎样看懂代码 java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?
java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?
Java虚拟机的功能是执行Java字节码,其编码实现是一个死循环。每个循环都是获取字节码并执行字节码的过程,因此与其他程序没有本质区别。主流的JavaVM大多是用C语言实现的,然后用汇编语言辅助实现,用Java实现JavaVM的情况有一些,但不多。
下面是使用C语言在智能设备中实现虚拟机的一个片段。
此代码是短加法字节码的实现。
这段代码只是获取字节码并执行它。你认为JavaVM就是这样吗。
为了优化虚拟机的效率,很多人选择用汇编的方式重写执行频率高的代码。
小结是C语言实现的许多,将与汇编结合起来作为辅助工具。有其他语言,但不是主流。
c 程序员转java好转吗?
在这个时候,我终于有时间写一篇我想写的文章。其实,这篇文章的标题并不十分准确。当C程序员编写java代码时,他们不必转用java而放弃C,他们只有一个选择。这两种语言各有优点。我们不要谈语言争端。让我们假设一个朋友需要这样的角色转变。在编写了多年的C语言之后,突然一个项目需要用Java来编写。
Java语言和C语言在语法上有很多相似之处,但在本质上有区别。当一个合格的C程序员写下每一行代码时,他必须记住如何存储代码中的每一个变量,堆栈结构是什么,如果处理不当,哪一块内存会造成很大的麻烦。然而,Java程序员有些不同。由于Java语言规范和Java虚拟机规范是分离的,再加上自动GC,操作性较差。但这不是坏事。毕竟,手动内存管理有其复杂性。
就个人而言,对于C程序员来说,Java语法没有问题。可以说80%以上的结构是相同的,所以这不是问题。但是如果你学英语语法,你能通过大学英语六级考试吗?我们能和外国人见面聊天吗?不一定。顺便说一句,我们要学习方言、成语和句型。当我们进入Java世界时,我们必须按照Java的规则来玩。例如,如何创建一个对象、如何比较两个对象、如何使用枚举类型、如何编写泛型代码、并发代码何时要实现上层结构、何时在代码中抛出异常以及何时使用反射。我认为,一个更专注于技术的人可能还需要至少三个月的项目培训才能获得资格。当然,我说的前提是这个C工程师有相当的基础,所以他可以站在一座山上看另一座山。
所以我认为C程序员转向Java的捷径是:学习Java习惯用法、模式和项目调整。
C程序员的另一个优势是,由于主流JVM是用C/C代码编写的,因此喜欢深入研究的人会非常有帮助。只要你有足够的调试技巧和全景式的了解一切,这种方法也适用于JavaScript,因为V8也是用C编写的
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。