详解 JVM 字节码 (1)

匿名 (未验证) 提交于 2019-12-02 23:32:01

在开始分析 class 字节码前我们先补一补一些基础知识,帮助我们更好地了解 jvm 是如何执行字节码的。大家可能都知道 JVM 是操作栈,

CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)和Java 虚拟机一样也是一个运行时环境,它负责资源管理(内存管理和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

栈虚拟机

  • 操作数栈持有操作数
  • 操作数可以入栈或出栈进行操作
  • 栈的大小是由每一个方法显式确定的
 public class HelloWorld {     public static void main(String[] args) {         System.out.println("hello world");     } } 

这里我们写一个简单的 HelloWorld 代码,执行效果是在控制台输出 hello world

执行顺序


我们用查看字节码工具来看一下,main 方法执行那些指令将我们 hello world 进行输出,这里大家只是简单了解就行,随后给大家分享如何查看和分析字节码。

操作符执行栈

  • 首先将 System.out.Print 压入栈
  • 然后将字符串“hello world ” 入栈
  • invokevitual 调用将调用 print 命令将 hello world 进行输出。

基本操作

基本操作符

这些操作完成对栈进行操作。JVM 是一个基于栈的虚拟机。

如果有想学习java的程序员,可来我们的java学习扣qun:697699179,免费送java的视频教程噢!我每晚上8点还会在群内直播讲解Java知识,欢迎大家前来学习哦。

文章来源: https://blog.csdn.net/sdssdfh/article/details/89790765
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!