首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javap Asciz字符串

Javap Asciz字符串
EN

Stack Overflow用户
提问于 2011-11-20 17:58:24
回答 2查看 762关注 0票数 5

关于javap命令生成的关于常量池的输出,没有什么问题。当javap打印池时,它将字符串常量定义为Asciz字符串,我理解这意味着null终止了Ascii:

代码语言:javascript
复制
const #20 = Asciz       hello world;

这意味着字符串的长度是未知的,要进行解析,您将读取每个字节,直到遇到null

但是,常量池字符串常量的长度是由字符串前面的两个字节定义的,并且没有附加null。(Constant pool specification)。

javap是否错误地将字符串定义为Asciz,或者Asciz是否有其他我不知道的含义?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-20 18:59:35

参见bug #6868539。这个问题已经在OpenJDK7中修复了,现在javap会打印Utf8

票数 4
EN

Stack Overflow用户

发布于 2011-11-20 18:49:54

const #20不是实际的字符串,而是用于字符串的UTF8定义的字符。您可能有另一个常量,它是引用常量#20的字符串。asciz常量用于字符串以外的其他事情,如字段名等。实际信息包含UTF8标签、长度和字节。

请参阅http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8200759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档