哪些有用的(用于性能或其他方面)构造是有效的字节码,但在Java中无法表达?
哪些有用的(用于性能或其他方面)构造是有效的字节码,但在Java中无法表达?
JVM字节码是一个 面向堆栈的编程语言因此,大多数堆栈管理指令在Java中没有意义,例如, dup
, swap
等等任意的 goto
当然,在Java中也无法表达。
就像是 JSR 292 建议支持动态类型语言,我认为Java不打算成为这种语言。
我认为这里需要解决一些问题:你的问题似乎至少部分是由绩效问题推动的。实际上,字节码是JIT编译成汇编的。是否有一个超级神奇的字节码指令真是没有实际意义。
JVM字节码是一个 面向堆栈的编程语言因此,大多数堆栈管理指令在Java中没有意义,例如, dup
, swap
等等任意的 goto
当然,在Java中也无法表达。
就像是 JSR 292 建议支持动态类型语言,我认为Java不打算成为这种语言。
我认为这里需要解决一些问题:你的问题似乎至少部分是由绩效问题推动的。实际上,字节码是JIT编译成汇编的。是否有一个超级神奇的字节码指令真是没有实际意义。
我已经读过字节码方法签名支持多个调度 返回类型而Java只允许调度相同名称的方法 参数类型。
反之亦然。
例如,Java的内部类的可见性不能用字节码表示。 JVM只知道受包受保护,受保护,公共和私有的可见性。因此,Java编译器必须使用hack:它生成合成包装器方法(包可见),以将内部类的私有字段和方法暴露给外部类。