2016 - 2024

感恩一路有你

查看jvm参数的命令 java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?

浏览量:1994 时间:2021-03-14 06:15:13 作者:admin

java虚拟机是用什么语言编写的?它的原理谁能通俗的讲出来吗?

Java虚拟机的功能是执行Java字节码,其编码实现是一个死循环。每个循环都是获取字节码并执行字节码的过程,因此与其他程序没有本质区别。主流的JavaVM大多是用C语言实现的,然后用汇编语言辅助实现,用Java实现JavaVM的情况有一些,但不多。

下面是使用C语言在智能设备中实现虚拟机的一个片段。

此代码是短加法字节码的实现。

这段代码只是获取字节码并执行它。你认为JavaVM就是这样吗。

为了优化虚拟机的效率,很多人选择用汇编的方式重写执行频率高的代码。

小结是C语言实现的许多,将与汇编结合起来作为辅助工具。有其他语言,但不是主流。

jvm是如何实现的?

编程语言类似于自然语言,两者都用于通信。自然语言用来与人交流,而编程语言用来表示机器。JVM实际上是一个程序,它可以接受Java代码并根据您的意愿执行一系列操作。例如,您可以编写一个程序来接受用户的单词。如果用户输入“嘟嘟声”,机器将发出嘟嘟声。如果用户进入“退出”,程序将被关闭。在本例中,用户编写的“beep”和“exit”实际上充当了编程语言的角色,但这种语言过于简单,难以普及。Java有一个完美的系统来支持你表达任何愿望,然后JVM理解你的Java语言并执行相应的操作,这就是编程语言的原理。当然,Java还有一个优化的解决方案。它的编译器将Java语言翻译成字节码,因为JVM执行字节码的速度比直接理解Java代码的速度快得多。后来的版本还引入了JIT技术,将字节码实时编译成机器代码,这样机器就可以直接执行指令,而不需要JVM来解释。至于垃圾收集器,JVM维护每个对象的引用(在C中可以理解为指针),并根据特定的算法确定它是否可以访问。如果无法访问引用(即,程序的后续部分无法获得引用,例如,它已超出块的范围),则清除内存对象。这种方法的优点是可以避免由于程序员的疏忽而导致的内存泄漏。缺点是对内存的清理不够及时,所以无用的对象往往占用内存很长时间。您也可以在C中实现垃圾收集器。其思想是编写一个用于管理内存的类,然后程序将不再使用new来创建新对象,而是使用这个类来生成对象。这个类有一个指向这个对象的指针,并在适当的时候删除它。这样就可以实现垃圾的自动回收。当然,写这样的课很难。

JVM的组成和运行原理是什么?

JVM是Java虚拟机的缩写。

1. JVM的组成:JVM由类加载器子系统、运行时数据区、执行引擎和本地方法接口组成。

2. JVM的工作原理:JVM是java编译器和java平台之间的虚拟处理器的核心和基础。它是一种基于底层操作系统和硬件平台,用软件方法实现的抽象计算机。它可以在上面执行Java字节码程序。Java编译器只需要面向JVM并生成JVM可以理解的代码或字节码文件。Java源文件由编译器编译成字节码程序,每一条指令通过JVM转换成不同平台的机器代码,由特定平台运行。

Java的哪个语法特性让你觉得写Java代码很享受?

我在日常生活中使用的主要语言是C#和Java。在语法方面,写C#更有趣。主要原因是C#有更多的语法糖,而且LINQ非常容易使用。其次,visualstudio被称为世界上第一个ide。但个人更喜欢Java。

从java8出来后,我觉得Java正在追赶C#,Java和C#的语法越来越相似(原来很相似,哈哈)。这里有一些比较。

在java8中添加lambda表达式后,我感觉越来越像C。

1. 当然,首先要看收入。在中国,基本上没有使用C的大公司。最初,携程在使用它,但后来,它也转向了Java。

2. 从技术的角度来看,有很多优秀的框架可以使用,因为Java可以制造很多轮子。在实际项目中你遇到问题,别人一定遇到过,能找到问题的关键。

3. 从生态学的角度来看,Java无疑是最好的选择之一,因为它的开源较早,建立生态学的时间也较早。

4. 在性能方面,sun/Oracle热点JVM内置的JIT编译器在运行时对字节码进行了优化。如果它不是一个性能敏感的应用程序,Java就足够了。

谢谢。

查看jvm参数的命令 jvm指令手册 jvm指令与汇编指令

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。