问题标签 [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.
java - javap 以可编程的方式
我们可以以可编程的方式在我们自己的 java 代码中使用 javap 吗?
例如,下面的代码:
在命令行中使用 javap,我们得到:
我可以使用 javap 的 API 只打印常量池吗?
java - 尝试使用 javap 时出现“错误:找不到类”
我正在尝试查看我的班级的字节码,但即使.class
文件在那里也找不到班级。我可以Main.java
从 CLI 很好地编译文件,但是使用javap -c Main
它时找不到类。
java - java:字节码中的字符串连接转换为StringBuilder
我用 javac 命令行查看了我的编译代码,我看到每当我使用 + 运算符进行字符串连接时,编译代码都会被 StringBuilder 的 append() 方法替换。现在我认为使用 StringBuilder 和 String 连接具有相同的性能,因为它们具有相似的字节码,对吗?
java - JDK类方法的时间复杂度度量
是否有一种既定的方法来衡量(或获取现有的衡量标准)JDK 类方法的复杂性?javap
代表时间复杂度和程度。特别是,我对Arrays.sort()
其他一些集合操作方法的复杂性感兴趣。
例如,我试图比较两种实现的性能,一种正在使用Arrays.sort()
,一种没有。javap
反汇编不会返回更多步骤(两倍),但我不确定是否排除了这些步骤Arrays.sort()
。IOW,javap
一种方法是否包括在该方法内或仅为该方法调用的方法的递归测量?
另外,有没有办法在不修改和重新编译 Java 代码本身的情况下,找出在特定参数上调用某个基本 Java 方法时完成了多少次循环迭代?例如,测量 的迭代次数Arrays.sort('A', 'r', 'T', 'f')
?
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,我会得到带有通用信息的结果。
java - java中显式和隐式实例化String类有什么区别
有人告诉我,像这样创建 String 实例
存在性能问题,因为它为双引号短语“不要这样做”创建了两个字符串实例,一个为 new String() 构造函数创建了一个实例!
今天我有时间自己测试一下,我创建了两个类:
这是javap的输出:
似乎它们是相同的,但是使用 -c 标志输出是不同的。
所以这是我的问题:) 首先什么是“ldc”、astore_1 等?有没有描述这些的文件?二是javac真的想不通这两句话是相等的吗??
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 中的某些内容还是什么?
java - 给定一个类文件,如何检测它是否使用 JNI?
我有一些只有类文件的 Java 基准测试。
我想找出哪些基准有 JNI 调用。
我想也许这可以在 的帮助下从字节码级别完成javap -c
,但不确定。
有任何想法吗?
java - 静态代码块有什么用?
我想问一下 javap 除了传递给它的类的公共字段和方法之外还显示什么。
我正在查看一个只有一个静态变量的类文件。正如预期的那样,javap 将静态变量和类构造函数显示为输出,但它也显示如下内容:
这条线是什么意思?
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 是如何命名的?