jvm虚拟机栈在java中的作用是什么

  介绍

本篇文章给大家分享的是有关jvm虚拟机栈在java中的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

jvm虚拟机栈的作用

jvm虚拟机栈栈帧的组成

jvm虚拟机栈,也叫java栈,它由一个个的栈帧组成,而栈帖由以下几个部分组成

<李>

局部变量表——存储方法参数,内部使用的变量

<李>

操作数栈——在变量进行存储时,需要进行入栈和出栈

<李>

动态连接引,用类型的指针

<李>

方法出口,方法的返回

<李>

一段原程序代码

package  com.lind.basic;      public  class  Demo1  {   ,static  int  hello (), {   ,int  a =, 1;   ,int  b =, 2;   ,int  c =, a  +, b;   ,return  c;   ,}      ,public  static  void  main (String [], args), {   ,System.out.println (hello ());   ,}   }

<>强一生成字节码文件

<代码> javac demo1.java

生成之后,扩展名是。类,这个文件对于我们来说是没有可读性的。

<强>二对类文件反汇编

<代码> javap demo1。类在;demo1.txt

我们可以通过文件编译工具来查看demo1。txt的内容

Compiled 得到“Demo1.java"   public  class  com.lind.basic.Demo1  {   ,public  com.lind.basic.Demo1 ();   ,代码:   0:才能aload_0   ,,1:invokespecial  # 1,,,,,//, Method  java/lang/对象!”& lt; init>“: V ()   4:才能返回      ,static  int  hello ();   ,代码:   ,,0:iconst_1 //,把第一个整型变量推到操作数栈   ,,1:istore_0 //,让它出栈,并存储到局部变量表   2:才能iconst_2   3:才能istore_1   4:才能,iload_0 //,加载第一个数据入操作数栈   5:才能,iload_1 //,加载第二个数据入操作数栈   6:才能,iadd //,将两个数相加,结束入操作数栈   7:,才能istore_2 //,将结果出栈,存到局部变量表   ,,8:iload_2 //,加载它入操作数栈   ,,9:ireturn //,返回      ,public  static  void 主要(以[]);   ,代码:   ,,0:getstatic , # 2,,,,,//, Field  java/lang/system . out: Ljava/io/PrintStream;   3:才能,invokestatic  # 3,,,,,//, Method 你好:我()   6:才能,invokevirtual  # 4,,,,,//, Method  java/io/PrintStream.println: (I) V   9:才能返回   }

以上就是jvm虚拟机栈在java中的作用是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

jvm虚拟机栈在java中的作用是什么