标签: bytecode

JVM字节码中的NOP用于什么?

NOP在今天的JVM 中,Java虚拟机的操作码是否有任何实际用途?如果是这样,NOP在字节码中生成s的情况是什么?

我甚至有兴趣看到一个用NOPs 编译成字节码的Java代码示例.


更新

BCEL的MethodGen类说,

在生成代码时,可能需要插入NOP操作.

我猜测其他字节代码库正在同一条船上,正如在接受的答案中所指出的那样.

java jvm bytecode nop

17
推荐指数
1
解决办法
3775
查看次数

可以在不同的目录中生成编译的字节码文件(.pyc)吗?

可能重复:
在单独的文件夹中编译python文件的方法?

当python将模块编译为字节码时,它会从.py文件生成.pyc文件.

我的问题是,是否可以将这些.pyc文件写入与模块所在位置不同的目录?

例如,我有一个大型模块目录.我希望将源代码保存在目录中,并且有一个像"bytecode"这样的子目录,其中存储了所有.pyc,而不是让它充满.pyc文件.

这可能吗?

python bytecode

16
推荐指数
2
解决办法
8616
查看次数

为什么反编译.NET IL代码这么容易?

与反编译本机x86二进制文件相比,为什么将.NET IL-code反编译为源代码如此容易?(Reflector在大多数情况下都会生成相当好的源代码,而反编译C++编译器的输出几乎是不可能的.)

是因为IL包含大量元数据吗?或者是因为IL是比x86指令更高的抽象?我做了一些研究,发现了以下两篇有用的文章,但它们都没有回答我的问题.

.net cil decompiling bytecode intermediate-language

16
推荐指数
2
解决办法
4396
查看次数

java字节码编辑器?

什么是好的免费字节码编辑器?我想要一个编辑器,一个带有GUI的东西......

我试过没有运气的jbe-0.1b(无法保存字节码的变化).

java bytecode

16
推荐指数
1
解决办法
2万
查看次数

有没有办法在运行时获取类的字节码?

在Java中,是否有一种方法(在运行时)获取定义特定类的字节码?

换句话说,有没有办法获取在加载特定类时byte[]传递给的数组ClassLoader.defineClass(String name, byte[] b, int off, int len)?我看到声明了这个方法final,因此创建一个ClassLoader拦截类定义的自定义似乎是不可能的.

在过去,我已经使用类ClassLoader来通过该getResourceAsStream(String)方法获取字节码,但我更喜欢更规范的解决方案.

java bytecode runtime

16
推荐指数
2
解决办法
4686
查看次数

java中构造函数的返回类型是什么?

我们知道我们不必向Java构造函数添加任何返回类型.

class Sample{
  .....
  Sample(){
    ........
  }
}
Run Code Online (Sandbox Code Playgroud)

在Objective C中,如果我们创建一个构造函数,它会返回一个指向其类的指针.但我认为这不是强制性的.

AClass *anObject = [[AClass alloc] init];//init is the constructor with return type a pointer to AClass
Run Code Online (Sandbox Code Playgroud)

类似地,构造函数是否转换为返回对其自己的类的引用的方法?

像这样:

class Sample{
    .....
    Sample Sample(){
      ........

      return this;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译器是否向构造函数添加了对同一类的引用的返回类型?构造函数发生了什么?有没有参考研究这个?

编辑:

实际上我希望答案是字节代码级别或JVM级别甚至更低.

java constructor jvm bytecode

16
推荐指数
1
解决办法
4万
查看次数

是否可以查看Java类文件字节码

我正在使用Java进行字节码操作/生成,我只是想知道是否有一种简单的方法可以检查字节码.我不想反编译文件,我想实际查看编译后的字节码.我不需要编辑它.任何用于执行此操作的链接或程序都是可接受的答案.

java bytecode

16
推荐指数
3
解决办法
1万
查看次数

Java字节代码的"内联汇编"

我正在寻找以下想法的现有实现:假设有人想在普通Java程序中编写"内联汇编"字节代码(大多数相关应用程序将涉及Java中无法提供的invokedynamic指令).一种方法是:

void foo(boolean b) {
    Label l1 = Asm.label();
    Label l2 = Asm.label();

    int i = Asm.no_int();
    Asm._const(0);
    Asm.store(i);
    l1.bind();
    Asm.load(i);
    Asm.push(10);
    Asm.if_cmpge(l2);
    Asm.getstatic("java/lang/System", "out", "Ljava/io/PrintStream");
    Asm.load(i);
    Asm.invokevirtual("java/io/PrintStream", "println", "(I)V");
    Asm.inc(i);
    Asm._goto(l1);
    l2.bind();
    Asm._return();
}
Run Code Online (Sandbox Code Playgroud)

指令被编码为API调用,然后我们需要运行普通的java编译器,然后对字节代码进行后处理并用实际指令替换API调用.

PS我知道ASM框架的ASMifier,它没有解决上述问题.

java bytecode

16
推荐指数
1
解决办法
2950
查看次数

什么Java编译器使用jsr指令,为什么?

Java字节码语言具有JSR指令.

我用Java 7编译器编译的代码都没有使用此指令.

但是,有时我下载的Java二进制文件确实使用它,尽管很少.

我有兴趣知道编译器使用什么指令,以及Java代码构造会导致它们使用它.

编辑它不是重复的,因为它引用了JSR字节码指令而不是Java规范请求

java bytecode

16
推荐指数
2
解决办法
2164
查看次数

尝试在 intellij 中查找 kotlin 字节码时,解决“没有手动输入 byte\;type\=a”的最佳方法

重现步骤

  1. 在 *.kt 上按 command+shift+a 查看字节码

顺便提一句,

显示 Kotlin 字节码

工作正常但坏了

显示字节码

(我猜它会显示 java 或 java 字节码)

在此处输入图片说明

  1. 选择显示字节码然后得到这个错误

在此处输入图片说明

  1. 但是当按下 command+shift+a 时一次又一次地出现这个错误

在此处输入图片说明

一开始我重新启动ide并发生同样的错误

然后我意识到如果我按下 Windows 那么错误就消失了...... 在此处输入图片说明

bytecode intellij-idea kotlin

16
推荐指数
1
解决办法
1451
查看次数