字节码如何在JVM中得到验证?

字节码如何在JVM中得到验证?,第1张

字节码如何在JVM中得到验证

甲骨文本身有它如何工作的一个小片段页面在这里。

基本上,JRE不信任JDK。那是因为它不知道哪个JDK编译器创建了类文件。它将类文件视为恶意文件,直到通过验证。

对此进行扩展,字节码验证是防止Sun称为“恶意编译器”的必要步骤。Sun自己的Java编译器可确保Java源代码不违反安全规则,但是,当应用程序导入代码片段时,它实际上并不
知道 该代码片段是否遵循Java语言规则来确保安全。换句话说,该代码可能不是由可信赖的Java编译器生成的。

在这种情况下,您计算机上的Java运行时系统必须假定该片段是错误的,并对其进行字节码验证。

在经过验证过程之前,Java虚拟机甚至 看不到
字节码。在加载字节码时执行此 *** 作还具有以下优点:不需要在每次执行代码时都执行很多运行时检查。因为已被验证为正确,所以它一旦开始运行,就可以比其他方式更快地运行。

链接图的呈现形式如下:

         <<<=== Unsafe / Safe ===>>> +---------------+        +-------------------+|  Java source  |   +--> |   Class loader    | --++---------------+   |    | Bytepre verifier |   |        ||    +-------------------+   |        V|  /   |+---------------+   |     V| Java compiler |  Network        /    +-------------------++---------------+   |      |      JVM/JIT      |        ||  /    +-------------------+        V|     |+---------------+   |  /   V| Java bytepre | --+      +-------------------++---------------+      /    | Operating system  |     +-------------------+ /   |    V /    +-------------------+     |     Hardware      | /    +-------------------+          <<<=== Unsafe / Safe ===>>>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5429188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存