为ijvm指令实现堆栈JAVA

时间:2018-06-10 12:44:30

标签: java stack ijvm

我在java中使用堆栈实现了一个简单的ijvm,但是,我遇到了一个非常奇怪的行为,我不明白为什么。 所以对于我的堆栈类,我有一个构造函数

<androidx.constraintlayout.widget.ConstraintLayout>

(maxSize,声明的堆栈和大小是类的私有变量.Word是我自己的类) 我的推动;

  public Stack(int maxStacksize) {
    maxSize = maxStacksize;
    stack = new Word[maxSize];
    size = 0;
  }

对我来说这些似乎很好,如果我错了,请纠正我!所以当输入是 BIPUSH 20 BIPUSH 40

我认识到双向指令并按​​指令将它们推到堆栈上,这很好用,我打印了我推动的东西,然后它先推动20然后40个。但是在我按下40之后,堆栈中的20个[0]由于某种原因变成了40?每当我推动东西时我都会打印整个堆栈,所以当推动40时,堆栈变成[40,40]而不是[20,40],我不知道为什么。我也打印&#34;尺寸&#34;每当推动时,尺寸参数似乎都是正确的。我知道如果尺寸低于0,我还没有检查,我稍后会补充一下 有什么想法吗?

0 个答案:

没有答案