Eclipse和JDK编译的字节码不同。那么,JVM如何理解这两个字节码?例:

package com.hcl.raj.utilities;

public class StringTest {

  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    String name = "Rajkumar";
    byte[] byteCodes = new byte[] {15,22,35,48};
    String str1 = new String(byteCodes);
    System.out.println(str1);
  }
}


上述源代码的JDK和Eclipse编译后的代码不同。

由于编码和格式问题,最初尝试发布已编译的代码已删除

最佳答案

Eclipse在内部使用了一个SDK(可以与您直接用于生成字节码的SDK相同,也可以与另一个SDK相同)。
同样,不同的SDK可以生成不同的字节码(例如,如果JDK来自不同的公司或不同的版本),但是如果它们在生成字节码时满足字节码规范,则它们也会被遵循该规范的JVM很好地解释。 。

关于java - JVM如何理解由JDK和Eclipse两者编译而成的字节码,两者都不相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12053183/

10-12 17:42