问题标签 [bytecode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将 Java 代码 1.5 降级到 1.4(奖励积分:J2ME、Blackberry !!!)
我想移植一些现有的 j2se 库(例如 Apache Compression 库)以用于 Blackberry 开发,但有一个问题(而不仅仅是一个问题)。
首先,大多数 java 库广泛使用 j2me 平台上通常缺少的 j2se 集合和数据类型——但这在理论上是可以解决的,这要归功于像 Apache Harmony 这样的开源 j2se api 实现。更大的问题是,Blackberry JDK 似乎基于 java 1.4,因此任何使用泛型和其他 1.5 特性(如 Enums)的代码都无法在 Blackberry 上轻松编译。
这就提出了一个有趣的问题,即是否有任何现有的工具或项目可以进行自动 1.5->1.4 转换,同时支持 j2me-bastardized 字节码 :)
我能够找到的一个项目是Retroweaver,但我不太确定该项目的活跃程度。
我敢肯定 1.5->1.4 自动转换的问题不是唯一的——那么有人有经验吗?
java - Android 上的 JiBX(或任何其他构建时字节码操作库)
我正在考虑将其JiBX
用于必须在 Blackberry 和 RIM 上运行的项目。虽然社区似乎已经考虑过使用(根据 JiBX jira 票证),但 Android 相对较新J2ME
。JiBX
因此,问题是:是否有人在 Android 上使用 JiBX 或任何其他需要在构建时修改类字节码的库取得任何成功(或问题)?
已经有关于如何在 Android 上运行此类库的讨论(与使用运行时字节码检测的库相比),但我没有看到太多关于人们实际尝试这样做的报告。
java - Java类的反编译和重新编译
我有一个程序,其中有一些 Java 类可用。可以反编译它们吗?是否可以在没有所有其他.class
文件的情况下修改类的源代码并重新编译它?
例如,假设我有一个dog.class
文件,它实现了一个动物的子类,它在animal.class
.
- 我可以
dog.java
不重新编译animal.class
吗? - 我可以
dog.java
不重新编译animal.java
吗?
我不是Java开发人员,所以如果我没有任何意义,请纠正我。
java - 如何检测 Java 字节码中的数组大小 (FindBugs)
我想通过查看字节码来了解分配的数组的大小,当然,如果该信息在编译时是已知的。
背景:我想编写一个 FindBugs 检测器(它查看已编译的字节码)并报告某些数组分配的发生。为了过滤掉误报,我对“小”数组不感兴趣,而只对那些大小在编译时不可用或大于可配置阈值的数组感兴趣。
由于 FindBugs 源代码没有太多的文档记录,我正在寻找一些关于如何开始的指示——也许已经有一个检测器在做类似的事情,我可以看看。
python - Python的字节码优化了多少地方(2.5版)
谁能告诉我在 Python 的字节码中有多少地方进行了优化?这几天一直在尝试反编译Python的字节码,但是发现在Python的2.5版本中有很多优化。例如:to this code
version2.5之前的非优化字节码是这样的:
在2.5版本中,优化后的字节码是这样的:
这只是一个例子,但还有很多其他地方可以优化。那么,有没有人知道是否有一些文档来阐明这些优化或告诉我可以通过哪种方式找到所有这些优化?
java - 解释一些东西,并在 Java 中运行生成的字节码?
我正在用 Java 编写一个带有 REPL 的玩具解释器。我想从语言生成字节码并运行它,而不是解释 AST 并运行它。
由于我的 Java 有点生疏,是否可以在 JVM 上动态运行生成的字节码?
java - Scala - Java 互操作:Scala 可以在字节码中发出枚举供 Java 使用吗?
我有一个混合 Java/Scala 的项目,它是使用 Scala 库的 Java GUI 代码。有没有办法编写 Scala 代码,使其在编译时发出 Java 枚举?到目前为止我尝试过的方法(密封案例类,扩展枚举)似乎生成了普通类,这使得从 Java 中使用它们比直接枚举要复杂得多。
java - Java 和“前端”兼容性问题
我已经使用参数-source 1.5和-target 1.5用 java 版本 1.6 编译了我的源代码,编译器根本没有抱怨。
尽管如此,由于缺少方法,该应用程序仍无法使用 java 1.5 运行。当然我可以重写我的一些源代码以符合 1.5,但我不明白的是;底部的java字节码不应该“向前”兼容吗?
方法不是转换成字节码了吗?是否可以将 1.6 库/方法(以前为 String.isEmpty())编译为 1.5 字节码并将其全部打包到存档中?
programming-languages - 字节码设计?
我正在设计一种编译为中间字节码的编程语言。但是,我在设计字节码结构时遇到了很多麻烦。有人对如何用二进制表示程序有任何指示吗?或者,是否有任何资源(最好是免费的)来说明如何做到这一点?我发现的最接近的是 Lua 解释器 bytecode 的描述。
编辑:更多信息:我正在实现自己的垃圾收集方案,该方案针对不变性和并发性进行了高度优化。为了效率,我需要一些独特的字节码指令,允许程序与垃圾收集方案交互。
java - 学习 Java 字节码和 JVM
在最近提出的一个问题中,我头脑简单的回答突出了我对 Java、JVM 以及代码如何编译和运行的许多误解。这使我产生了一种将我的理解降低到较低水平的愿望。我对像汇编这样的低级理解没有任何问题,但字节码和 JVM 让我感到困惑。面向对象的代码是如何在低层次上被分解的,我对此一无所知。我想知道是否有人对如何了解 JVM、字节码和 Java 的低级功能有任何建议。是否有任何实用程序可以让您直接编写和运行字节码,因为我相信亲身体验某事是加深对它的理解的最佳方式?此外,我们将不胜感激有关此主题的阅读建议。
编辑:次要问题。所以我有一个子问题,答案给了我一个有趣的想法来了解 jvm,仅以可读的语法编写像 Brainf**k 或 Ook 这样非常简单的语言的合理性是什么(也许我什至可以开发它最终支持oo)编译成字节码是?那会是一次很好的学习经历吗?