我正在尝试将JVM字节码和Java作为编程语言进行比较。
你能想到任何无法用Java重写的示例字节码类吗,即使使用大量(Java-)样板代码也是如此?也许其他JVM语言(如Scala)使用的任何结构?
[编辑]我不是在谈论指令的比较或创建某种算法的可能性。让我改写一下这个问题:"是否有任何'模式'是另一种JVM语言可以使用的,而Java不能?[/编辑]
[编辑2]如果我解释一下这个问题的真正含义,也许会更容易。我正在使用源代码转换系统,并问自己是否有任何模式或结构可能有用,但不能仅通过转换纯 Java 代码添加到 Java 类中,但需要修改字节码本身。[/编辑2]
- 在 Java 中,您不能有两个名称相同的方法,这些方法仅在返回类型上有所不同 - Java 字节码允许这样做
- 字节码允许在不调用构造函数的情况下创建类的实例
- 字节码允许直接使用GOTO,这在普通Java中是不允许 的。
更新:西米拉尔问题已在此处得到解答
我还想补充一点,您不能在运行时使用类型信息。因此,如果要将保留运行时通用信息的 C# 转换为 JVM 字节码,则无法 1:1 完成。类型擦除:Java 与 C#