问题标签 [javap]

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.

0 投票
2 回答
2052 浏览

java - javap 以可编程的方式

我们可以以可编程的方式在我们自己的 java 代码中使用 javap 吗?

例如,下面的代码:

在命令行中使用 javap,我们得到:

我可以使用 javap 的 API 只打印常量池吗?

0 投票
1 回答
7003 浏览

java - 尝试使用 javap 时出现“错误:找不到类”

我正在尝试查看我的班级的字节码,但即使.class文件在那里也找不到班级。我可以Main.java从 CLI 很好地编译文件,但是使用javap -c Main它时找不到类。

0 投票
2 回答
1804 浏览

java - java:字节码中的字符串连接转换为StringBuilder

我用 javac 命令行查看了我的编译代码,我看到每当我使用 + 运算符进行字符串连接时,编译代码都会被 StringBuilder 的 append() 方法替换。现在我认为使用 StringBuilder 和 String 连接具有相同的性能,因为它们具有相似的字节码,对吗?

0 投票
3 回答
330 浏览

java - JDK类方法的时间复杂度度量

是否有一种既定的方法来衡量(或获取现有的衡量标准)JDK 类方法的复杂性?javap代表时间复杂度和程度。特别是,我对Arrays.sort()其他一些集合操作方法的复杂性感兴趣。

例如,我试图比较两种实现的性能,一种正在使用Arrays.sort(),一种没有。javap反汇编不会返回更多步骤(两倍),但我不确定是否排除了这些步骤Arrays.sort()。IOW,javap一种方法是否包括在该方法内或仅为该方法调用的方法的递归测量?

另外,有没有办法在不修改和重新编译 Java 代码本身的情况下,找出在特定参数上调用某个基本 Java 方法时完成了多少次循环迭代?例如,测量 的迭代次数Arrays.sort('A', 'r', 'T', 'f')

0 投票
1 回答
791 浏览

java - javap 和泛型的类型擦除

我正在阅读 Herbert Schilds 关于 Java 泛型中的类型擦除。假设在一个类上运行 javap 应该在类型擦除后给我关于公共、包保护和受保护字段和方法的字节码信息。但是,我写了以下课程:

并在生成的类文件上运行 javap 并得到以下输出

编译自“Test.java”

根据我阅读的内容,我期待一个看起来像这样的输出。

我在这里错过了什么吗?我应该补充一点,我理解以上述方式重载方法不是一个好习惯。我只是对在这种模棱两可的情况下看到 javap 的结果感兴趣。

编辑:这似乎是 javap 中新修复的结果。 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4870651

如果我从 JDK 1.6 运行 javap,我会得到预期的结果。如果我从最初使用的 JDK 1.7 b30 运行 javap,我会得到带有通用信息的结果。

0 投票
3 回答
1711 浏览

java - java中显式和隐式实例化String类有什么区别

有人告诉我,像这样创建 String 实例

存在性能问题,因为它为双引号短语“不要这样做”创建了两个字符串实例,一个为 new String() 构造函数创建了一个实例!

今天我有时间自己测试一下,我创建了两个类:

这是javap的输出:

似乎它们是相同的,但是使用 -c 标志输出是不同的。

所以这是我的问题:) 首先什么是“ldc”、astore_1 等?有没有描述这些的文件?二是javac真的想不通这两句话是相等的吗??

0 投票
1 回答
5627 浏览

android - 使用 javap 获取 Android Activity 的方法签名

当我在命令行中编写时javap -s java.awt.Label,我成功获得了Label. 现在我想获取 Android Activity 类的签名。但如果我写javap -s android.app.activity它会导致ERROR: Could not find android.app.activity.

我究竟做错了什么?我应该更改 PATH env var 中的某些内容还是什么?

0 投票
4 回答
326 浏览

java - 给定一个类文件,如何检测它是否使用 JNI?

我有一些只有类文件的 Java 基准测试。

我想找出哪些基准有 JNI 调用。

我想也许这可以在 的帮助下从字节码级别完成javap -c,但不确定。

有任何想法吗?

0 投票
3 回答
557 浏览

java - 静态代码块有什么用?

我想问一下 javap 除了传递给它的类的公共字段和方法之外还显示什么。

我正在查看一个只有一个静态变量的类文件。正如预期的那样,javap 将静态变量和类构造函数显示为输出,但它也显示如下内容:

这条线是什么意思?

0 投票
4 回答
8769 浏览

java - java.io.File 的 jar 在哪里?

当我需要获取方法签名时android.content.ContextWrapper,我会去

"C:\Program Files (x86)\Android\android-sdk\platforms\android-18" 放置android.jar 然后执行

javap -s -classpath android.jar android.content.ContextWrapper > out.txt

现在,我需要获取java.io.File. 对应的 .jar 是如何命名的?